项目目录结构

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

测试结果

最新文章

  1. Android无线调试
  2. js与jquery异同
  3. redis windows下使用及redis命令
  4. php如何支持实现多线程并发
  5. Java中的的XML文件读写
  6. 《转》Ubuntu 12.04常用的快捷键
  7. CSS如何实现图片上下垂直居中
  8. Mac Maven java_home错误
  9. PHP&#160;Fuzzing行动——源码审计
  10. mac itunes ios 7 升级 出现 this device isn&#39;t eligible for the requested build
  11. zabbix监控nginx连接状态(转)
  12. ASP.Net MVC 数据处理
  13. 函数的属性和方法之call、apply 及bind
  14. github使用步骤
  15. Python中late-binding-closures
  16. BZOJ4942 NOI2017整数(线段树)
  17. hdu 2157 从a点走到b点刚好k步的方案数是多少 (矩阵快速幂)
  18. 阿里八八Alpha阶段Scrum(12/12)
  19. 20172302『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结
  20. fiddler抓包https

热门文章

  1. 使用 Django1.11搭建blog项目
  2. Hadoop实战-Flume之Source replicating(十四)
  3. OpenCV Machine Learning 之 正态贝叶斯分类器 (Normal Bayes Classifier)
  4. 20145239杜文超 《Java程序设计》实验二 Java面向对象程序设计实验报告
  5. hadoop —— MapReduce例子 (数据排序)
  6. kvm初体验之八:调整vm的vcpu, memory, disk大小
  7. css中字体大小在不同浏览器兼容性问题
  8. unreal network
  9. ICE 迁移64位安装问题
  10. 从CWnd::GetSafeHwnd实现得到的知识