使用go实现基于命令行的计算器程序
2017-12-30 22:36
507 查看
项目目录结构
calcs.go源文件
package main import ( "fmt" "os" "strconv" "myapp/simplemath" ) var Usage = func() { fmt.Println("USAGE: calcs command [arguments] ...") fmt.Println("\nThe commands are:\n\tadd\tAddition of two values.\n\tsqrt\tSquare root of a ono-negative value.") } func main() { args := os.Args//接受命令行参数 if args == nil || len(args) < 3 { Usage() return } switch args[1] { case "add": if len(args) != 4{ fmt.Println("USAGE:calcs add <integer1> <interger2>") return } v1,err1 := strconv.Atoi(args[2]) v2,err2 := strconv.Atoi(args[3]) if err1 != nil || err2 != nil { fmt.Println("USAGE: calcs add <integer1> <integer2>") return } ret := simplemath.Add(v1,v2) fmt.Println("Result: ",ret) case "sqrt": if len(args) != 3 { fmt.Println("USAGE: calcs sqrt <integer>") } v , err := strconv.Atoi(args[2]) if err != nil { fmt.Println("USAGE: calcs sqrt <integer>") return } ret := simplemath.Sqrt(v) fmt.Println("Result: ",ret) default: Usage() } }
add.go源文件
package simplemath func Add (a int,b int) int { return a + b }
add_test.go源文件,测试程序
package simplemath import "testing" func TestAdd(t *testing.T) { r := Add(1,2) if r != 3 { t.Errorf("Add(1,2) failed. Got %d,expected 3.",r) } println(r) }
sqrt.go源文件
package simplemath import ( "math" ) func Sqrt(i int) int { v := math.Sqrt(float64(i)) return int(v) }
sqrt_test.go源文件,测试程序
package simplemath import "testing" func TestSqrt(t *testing.T) { v := Sqrt(16) if v != 4 { t.Errorf("Sqrt(16) failed. Got %v,expected 4.",v) } println(v) }
然后编译calcs.go
测试结果
相关文章推荐
- 使用 Perl 脚本实现交互式命令行程序的管理与测试自动化
- 使用WPF技术实现基于MSN协议的五子棋程序
- 使用C#实现基于TCP和UDP协议的网络通信程序的基本示例
- 第四次程序设计作业 C++计算器计算及命令行的使用 前缀表达式方法实现
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 使用 Perl 脚本实现交互式命令行程序的管理与测试自动化
- 使用 Perl 脚本实现交互式命令行程序的管理与测试自动化
- golang实现命令行程序的使用帮助
- 用 Go 实现简单命令行实用程序 selpg
- 使用Java编写基于命令行的程序
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 使用WPF技术实现基于MSN协议的五子棋程序
- go 使用命令行库编写命令行程序
- Go语言实现的命令行解析程序
- 第四次程序设计作业 C++计算器计算及命令行的使用 前缀表达式方法实现
- 神经网络与深度学习 1.6 使用Python实现基于梯度下降算法的神经网络和MNIST数据集的手写数字分类程序
- 使用 Perl 脚本实现交互式命令行程序的管理与测试自动化
- Android中使用am命令实现在命令行启动程序详解
- 使用递归下降算法分析数学表达式 -- 基于堆栈的计算器实现算法
- 使用go构建命令行程序的快捷之道