首页 > 代码库 > go语言入门

go语言入门

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