1.变量:
var v1 int
var v2 string
var v3 [10]int // 数组
var v4 []int // 数组切片
var v5 struct {
f int
}
var v6 *int // 指针
var v7 map[string]int // map,key为string类型,value为int类型
var v8 func(a int) int
v3 := 10 (冒号和等号的组合:=),用于明确表达同时进行变量声明和初始化的工作。
2.3类型
基础类型:
布尔类型:bool。
整型:int8、byte、int16、int、uint、uintptr等。
浮点类型:float32、float64。
复数类型:complex64、complex128。
字符串:string。
字符类型:rune。
错误类型:error。
复合类型:
指针(pointer)
数组(array)
切片(slice)
字典(map)
通道(chan)
结构体(struct)
接口(interface)
5函数:
2.5.1函数定义:在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。
func Add(a, b int)(ret int, err error) {
// …
}
2.5.2函数调用:
规则:小写字母开头的函数只在本包内可见,大写字母开头的函数才
能被其他包使用。
这个规则也适用于类型和变量的可见性。
import “mymath”// 假设Add被放在一个叫mymath的包中
c := mymath.Add(1, 2)
2.5.3不定参数
2.5.4多返回值
func (file *File) Read(b []byte) (n int, err Error)
在读文件的时候不想关心Read()函数返回的错误码,则:
n, _ := f.Read(buf)
2.5.5匿名函数和闭包
匿名函数:指不需要定义函数名的一种函数实现方式,可以直接赋值给一个变量或者直接执行,匿名函数是一个闭包;
f := func(x, y int) int {
return x + y
}
func(ch chan int) {
ch <- ACK
} (reply_chan) // 花括号后直接跟参数列表表示函数调用