在Go中,经常可以见到 …T 能概括一下什么场合会用到…T吗
-
用在函数参数中
若函数的最后一个参数是…T类型,这个参数可传入任意个T类型的参数,在函数中…T的类型为[]T.
在这个例子函数中,你可以这样使用这个函数
Sum(1,2,3)
orSum()
.func Sum(nums ...int) int { res := 0 for _, n := range nums { res += n } return res }
-
用在解序列
可以传入一个slice,然后用…解开它,注意在这里没有新的slice被创造。在这个例子函数中,我们把slice传入Sum函数
primes := []int{2, 3, 5, 7} fmt.Println(Sum(primes...)) // 17
在append函数的注释中,同样可以看到
...
//It is therefore necessary to store the // result of append, often in the variable holding the slice itself: // slice = append(slice, elem1, elem2) // slice = append(slice, anotherSlice...)
-
用在数组中
在一个数组的声明中,
...
相当于指定一个和元素个数相同的长度stooges := [...]string{"Moe", "Larry", "Curly"} // len(stooges) == 3
-
用在Go命令中
在go命令中,
...
可以作为一个列出所有包名的通配符这个命令列出当前和子目录中所有的包
go test ./...
有疑问加站长微信联系(非本文作者)