今天使用go语言写个简单的计算器,功能包括加、减、乘、除。这里就拿加法来举例子,其他部分的代码可以给我发私信,我给你发过去。
需求:
使用命令行形式,如calc command [arguments],如加法是:calc add 1 2
加法和乘法的时候不能限制arg(加数或者乘数)的个数
先写加法部分,这里需要考虑的地方,我们的怎么获取到命令行后面跟随的加数的个数,这里做一个简单处理,将这些都看成字符串类型,然后再转化为浮点类型的。如下:
add
这个包括字符串转化为浮点数以及它们之间的求和运算。下面在贴出add.go整个文件的其余部分。如下:
Add
在一个完整的开发中,你还可能需要写一些测试用例,如下:
add_test.go
上面这个只是其中的一个用例,可以考虑不同的场景去写,当然这些都是最简单的。
我们把add这个功能模块写完了,就可以在主函数里面去调用它了,当然,我们在调用之前还要考虑的是,我们根据输入的command不同需要做不同的处理,如果没有我们要的command那就要报错,所以先写Usage,如下:
usage
那我们是什么时候去调用这个Usage呢,其实想一想就知道了,当我们没有输入command或者command不是我们定义的又或者command 后面不带参数的时候就要调用这个函数,告诉用户应该怎么正确输入,如下:
usage
判断完输入的command是什么之后,我们就要根据command去调用对应的功能模块,比如刚刚写完的add这个功能,如下:
add
这里使用swtich语句判断command是什么类型的,前面说的假如没有我们定义的就放到default里面,如下:
default
好了,主要的我们都写完了,下面我们来看下功能怎么样,首先看我们测试代码是不是都是pass的,如下:
go test
不错,所有的测试用例都跑完了,并且是pass的,然后我们编译一下主函数,得到我们要的命令行工具,如下:
go build
然后使用一下它的基本功能,没带command以及带command没带参数的时候,如下:
cacl
加法功能,一个加数,两个或者多个加数的时候,如下:
add
还有另外几个功能,在这就不一一把代码理出来了,需要留言给我,给大家看下减法、乘法、除法以及求平方根的效果吧:
sub
mul
div
sqrt
好了,本次笔记到此结束,谢谢您们的阅读!
May you share freely, never taking more than you give.
愿你宽心与人分享,所取不多于你所施与。