代碼結構以下: 編程
calc/ 函數
└── src=====================calc.go========================== ui
package main //定義成main包go纔會執行裏面的main函數 import ( "fmt" "os" "strconv" "mymath" ) var Usage = func(){ fmt.Println("Usage: calc commond args"); } func main(){ //讀取參數 args := os.Args; fmt.Printf("args:%s\n", args) if args == nil || len(args) < 2 { Usage() return } switch args[1] { case "add" : x, err := strconv.Atoi(args[2]); y, err := strconv.Atoi(args[3]); var addRet = mymath.Add(x, y); fmt.Printf("add:%d, err:%s\n", addRet, err); return case "sqrt" : i, err := strconv.Atoi(args[2]); var sqrtRet = mymath.Sqrt(i); fmt.Printf("sqrt:%f, err:%s\n", sqrtRet, err); return } }==================== add.go=======================
package mymath func Add (x int, y int) int { return x+y }==================== sqrt.go =======================
package mymath import "math" func Sqrt (x int) float64 { sqrt := math.Sqrt(float64(x)) return sqrt }
編譯: spa
$ GOPATH=`pwd` go build src/calc/calc.go code
運行: it
gaojie@Joy:/media/gaojie/Linux/Go/workspace/calc$ ./calc add 5 7
args:[./calc add 5 7]
add:12, err:%!s(<nil>)
gaojie@Joy:/media/gaojie/Linux/Go/workspace/calc$ ./calc sqrt 15
args:[./calc sqrt 15]
sqrt:3.872983, err:%!s(<nil>) 編譯
參考:《Go語言編程》高清完整版電子書 class