安装 Golang
在 http://golang.org/dl/ 可以下载到 Golang。安装文档:http://golang.org/doc/install。
Hello Go
我们先创建一个文件 hello.go:
package main
import "fmt"
func main() {
fmt.Printf("hello Golang\n");
}
</div>
执行此程序:
go run hello.go
</div>
包
Golang 程序由包(packages)组成,程序从 main 包开始运行:
package main
</div>
此语句表示此文件属于 main 包(多个源文件可以属于同一个包)。import 语句后接上包所在的路径(被叫做包路径或导入路径),一个目录中放置一个包,通常的做法是,目录名和包名相同:
import (
"fmt"
"math/rand"
)
</div>
这里的 “fmt” 和 “math/rand” 为包路径(导入路径)。上面的 import 语句也可以这样写:
import "fmt"
import "math/rand"
</div>
我们导入了包之后,就可以通过 “包名.name” 来引用导出的 name 了,例如:
import "fmt"
// fmt 包导出了 Printf
fmt.Printf("hello Golang\n");
</div>
在 Golang 中,一个名字如果首字母大写则表示此名字被导出。
函数
package main
import "fmt"
func add(x int, y int) int {
return x + y
}
func main() {
fmt.Println(add(42, 13))
}
</div>
需要注意的就是,变量名在类型之前,这和很多语言都不一样。另外 x int, y int 也可以写为 x, y int:
func add(x, y int) int {
return x + y
}
</div>
函数可以返回多个值:
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
}
</div>
返回值可以被指定变量名,并且像变量一样使用:
package main
import "fmt"
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}
func main() {
fmt.Println(split(17))
}
</div>
可以看到 split 函数直接使用 return 语句而不用带参数。
变量
变量的声明使用 var 语句:
var i int
var c, python, java bool
</div>
变量在声明时可以进行初始化:
var x, y int = 1, 2
var i, j = true, "hello"
</div>
我们看到,初始化时可以指定也可以不指定变量类型。
按照 Golang 的语法,在函数外的任何结构(construct)都通过一个关键字开始,例如变量使用 var 关键字开始,函数使用 func 关键字开始。在函数内,变量赋值可以使用 := 操作符:
package main
func main() {
var x, y int = 1, 2
i, j := true, "hello"
}
</div>
:= 操作符左边为变量,右边为值。
数据类型
基本数据类型:
1.bool
2.string
3.int int8 int16 int32 int64
4.uint uint8 uint16 uint32 uint64
5.uintptr
6.byte(等价于 uint8)
7.rune(等价于 int32,用于表示一个 unicode code point)
8.float32 float64
9.complex64 complex128
类型转换使用表达式 T(v),含义为将 v 转换为类型 T:
var i int = 42
var f float64 = float64(i)
i := 42
f := float64(i)
</div>
类型转换总需要显式的进行。
使用 const 来声明常量:
const Pi = 3.14
const (
Big = 1 << 100
Small = Big >> 99
)
</div>
控制语句
for 语句
Golang 使用(且只使用)for 来进行循环(没有 while 语句):
package main
func main() {
sum := 0

