1. 函数变参
若函数的最后一个参数是…T类型,这个参数可传入任意个T类型的参数,在函数中…T的类型为[]T.
func f1(a ...int) {
fmt.Println(reflect.TypeOf(a)) // []int
}
2. 解序列
同第1点相呼应,将slice … 作为函数变参传入
var a = []interface{}{1, 2, 3}
fmt.Println(a...) // 1 2 3
f1(a) // []int
3. 定义数组
在一个数组的声明中,...相当于指定一个和元素个数相同的长度
下面样例中,注意类型差别,一个为数组一个为且切片
func f2() {
var a = [...]int{1, 2, 3} // [3]int
var b = []int{1, 2, 3} // []int
fmt.Println(reflect.TypeOf(a), reflect.TypeOf(b)) // [3]int []int
}
4. 用在Go命令中
作为列出所有的通配符
go test ./...
go install pushsvr/...