go语言学习笔记-简单计算器

今天使用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.

愿你宽心与人分享,所取不多于你所施与。