標籤:style blog http color 使用 os
Go語言最主要的特性:
? 自動記憶體回收
? 更豐富的內建類型
? 函數多傳回值
? 錯誤處理
? 匿名函數和閉包
? 類型和介面
? 並發編程
? 反射
? 語言互動性
1.2.4 錯誤處理
Go語言引入了3個關鍵字用於標準的錯誤處理流程,這3個關鍵字分別為defer、panic和
recover。
1:編譯環境準備在Go 1發布之前,開發人員要想使用Go,只能自行下載代碼並進行編譯,而現在可以直接下載對應的安裝包進行安裝,安裝包的為http://code.google.com/p/go/downloads/list。在*nix環境中,Go預設會被安裝到/usr/local/go目錄中。安裝包在安裝完成後會自動添加執行檔案目錄到系統路徑中。
Ubuntu安裝Go:
sudo add-apt-repository ppa:gophers/go
sudo apt-get update
sudo apt-get install golang-stable
或
sudo apt-get install golang
或者直接下載go語言安裝包
http://blog.csdn.net/liuhongwei123888/article/details/8512815
//calc.gopackage mainimport "os"// 用於獲得命令列參數os.Argsimport "fmt"import "simplemath"import "strconv"var Usage = func() {fmt.Println("USAGE: calc command [arguments] ...")fmt.Println("\nThe commands are:\n\tadd\tAddition of two values.\n\tsqrt\tSquare
root of a non-negative value.")
}
func main() {
args := os.Args
if args == nil || len(args) < 2 {
Usage()
return
}
switch args[0] {
case "add":
if len(args) != 3 {
fmt.Println("USAGE: calc add <integer1><integer2>")
return
}
v1, err1 := strconv.Atoi(args[1])
v2, err2 := strconv.Atoi(args[2])
if err1 != nil || err2 != nil {
fmt.Println("USAGE: calc add <integer1><integer2>")
return
}
ret := simplemath.Add(v1, v2)
fmt.Println("Result: ", ret)
case "sqrt":
if len(args) != 2 {
fmt.Println("USAGE: calc sqrt <integer>")
return
}
v, err := strconv.Atoi(args[1])
if err != nil {
fmt.Println("USAGE: calc sqrt <integer>")
return
}
ret := simplemath.Sqrt(v)
fmt.Println("Result: ", ret)
default:
Usage()
}
代碼清單1-6
add.go
// add.go
package simplemath
func Add(a int, b int) int {
return a + b
}
代碼清單1-7
add_test.go
// add_test.go
package simplemath
import "testing"
func TestAdd1(t *testing.T) {
r := Add(1, 2)
if r != 3 {
t.Errorf("Add(1, 2) failed. Got %d, expected 3.", r)
}
}
代碼清單1-8 sqrt.go
// sqrt.go
package simplemath
import "math"
func Sqrt(i int) int {
v := math.Sqrt(float64(i))
return int(v)
}
代碼清單1-9 sqrt_test.go
// sqrt_test.go
package simplemath
import "testing"
func TestSqrt1(t *testing.T) {
v := Sqrt(16)
if v != 4 {
t.Errorf("Sqrt(16) failed. Got %v, expected 4.", v)
}
}
為了能夠構建這個工程,
需要先把這個工程的根目錄加入到環境變數GOPATH中。
假設calcproj
目錄位於~/goyard下,則應編輯~/.bashrc檔案,並添加下面這行代碼:
export GOPATH=~/goyard/calcproj
然後執行以下命令應用該設定:
$ source ~/.bashrc
GOPATH和PATH環境變數一樣,也可以接受多個路徑,並且路徑和路徑之間用冒號分割。
設定完 GOPATH 後 ,現在我們開始構建工程。假設我們希望把產生的可執行檔放 到
calcproj/bin目錄中,需要執行的一系列指令如下:
cd ~/goyard/calcprojmkdir bincd bingo build calc順利的話,將在該目錄下發現產生的一個叫做calc的可執行檔,執行該檔案以查看協助資訊並進行算術運算:$ ./calcUSAGE: calc command [arguments] ...The commands are:addAddition of two values.sqrtSquare root of a non-negative value.$ ./calc add 2 3Result: 5$ ./calc sqrt 9Result: 3從上面的構建過程中可以看到,真正的構建命令就一句:go build calc
nn