Go语言中省略号用法大全

发布时间 2023-08-09 22:20:44作者: tangjicheng

Go语言中的ellipsis(即三个连续的点 ...)确实有几种用途。下面是这些用途的总结:

  1. 定义变参函数(Variadic Functions):
    Ellipsis 用于函数定义时,表明该函数可以接受任意数量的参数。这些参数会被当作一个 slice 来处理。

    例如:

    func sum(nums ...int) int {
        total := 0
        for _, num := range nums {
            total += num
        }
        return total
    }
    

    你可以这样调用它:

    sum(1, 2, 3, 4)
    
  2. 传递变长参数:
    如果你已经有了一个 slice,但你想将它传递给一个变参函数,你可以使用 ellipsis。这告诉 Go 将 slice 的每个元素传递为独立的参数。

    例如使用前面定义的 sum 函数:

    nums := []int{1, 2, 3, 4}
    total := sum(nums...)
    
  3. 数组的长度自动推导:
    在定义数组时,如果你不想明确指定数组的长度,但是你提供了初始化值,你可以使用 ellipsis 来让 Go 自动计算数组的长度。

    primes := [...]int{2, 3, 5, 7, 11, 13}
    

    上面的代码会创建一个长度为 6 的整数数组。

这些就是 Go 语言中 ellipsis 的主要用途。确保在适当的上下文中使用它们,以免引起混淆或错误。