Go省略号教程展示了如何使用省略号运算符。
省略号(…)(或三个点)运算符用于可变参数函数、arrayliterals和go命令。
$ go version go version go1.18.1 linux/amd64
我们使用Go版本1.18。
Go可变函数参数
可以使用任意数量的尾随参数调用可变参数函数。
package main import "fmt" func main() { fmt.Println(Sum(1, 2, 3)) fmt.Println(Sum(1, 2, 3, 4)) fmt.Println(Sum(1, 2, 3, 4, 5)) } func Sum(n ...int) int { sum := 0 for _, n := range n { sum += n } return sum }
在示例中,我们有Sum
函数,它可以接受任意数量的整数值。
$ go run main.go 6 10 15
当我们将切片作为参数传递给可变函数时,我们可以使用三个点。
package main import "fmt" func main() { vals := []int{1, 2, 3, 4, 5, 6, 7} fmt.Println(Sum(vals...)) } func Sum(n ...int) int { sum := 0 for _, n := range n { sum += n } return sum }
在示例中,我们将整数片段传递给Sum
函数。
推断数组长度
当使用带有省略号...
运算符的数组文字时,我们可以推断出数组长度。
package main import "fmt" func main() { vals := [...]int{ 1, 2, 3, 4, 5, 6 } fmt.Println(vals) }
在代码示例中,我们在数组声明中使用了...
。这告诉Go从提供的数组文字中推断数组的长度。
$ go run main.go [1 2 3 4 5 6]
通配符
省略号可以在go命令中用作通配符。
$ go list ... archive/tar archive/zip bufio bytes compress/bzip2 compress/flate compress/gzip compress/lzw compress/zlib container/heap container/list container/ring context crypto crypto/aes crypto/cipher ...
该命令递归列出所有包,包括来自当前目录中标准库的包。
在本教程中,我们介绍了Golang中的省略号(三个点)运算符。
列出所有Go教程。