您的位置:首页 > 编程语言 > Go语言

使用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






测试结果



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐