ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Go语言中...(三个点)的使用几个常见情况

2026/9/23 5:33:01 拓冰建站 浏览量
Go语言中...(三个点)的使用几个常见情况

①可变参数函数(Variadic Functions): 在函数定义中,“…” 可以用于表示可变参数。这使得函数可以接受任意数量的参数。例如:

func sum(nums ...int) int {total := 0for _, num := range nums {total += num}return total
}func main() {result := sum(1, 2, 3, 4, 5)fmt.Println(result) // 输出: 15
}

②如果一个切片后面跟着 “…”,它会被展开为一个个的元素,如下输出15:

import "fmt"func main() {nums := []int{1, 2, 3, 4, 5}fmt.Println(sum(nums...))
}func sum(nums ...int) int {total := 0for _, num := range nums {total += num}return total
}

但是去掉fmt.Println(sum(nums...))的三个点,报错:cannot use nums (variable of type []int) as int value in argument to sum
这里传递的不是切片是多个整数!!!比如如下输出12

func main() {nums := []int{1, 2, 3, 4, 5}fmt.Println(sum(nums[2:]...))
}func sum(nums ...int) int {total := 0for _, num := range nums {total += num}return total
}

以及fmt.Println(sum(nums[2]))输出3

③在数组的定义中,如果使用 “…” 表示长度,Go 语言会根据初始化值的个数自动计算数组的长度。数组的长度是固定的,声明时需要指定数组的长度。切片是动态长度的,声明时不需要指定长度。