开放的编程资料库

当前位置:我爱分享网 > Go教程 > 正文

Go省略号

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教程。

未经允许不得转载:我爱分享网 » Go省略号

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏