golang 变量三个点
在Go语言中,三个点(…)可以用于多种场景,具体取决于它们的上下文。以下是几种常见的用法:
可变参数函数:在函数定义时,如果某个参数的类型前面有三个点(…),表示该参数是一个可变参数,即可以接受任意数量的该类型的参数。
func sum(nums ...int) int { total := 0 for _, num := range nums { total += num } return total } func main() { fmt.Println(sum(1, 2, 3, 4)) // 输出:10 fmt.Println(sum(5, 6)) // 输出:11 }
在上述示例中,sum()函数定义了一个可变参数nums,可以接受任意数量的int类型参数。在main()函数中,我们分别调用了sum()函数,传入了不同数量的参数。
切片解包:在函数调用时,如果某个切片类型的参数后面有三个点(…),表示将切片解包为独立的元素,作为实参传递给函数。
func printNums(nums ...int) { for _, num := range nums { fmt.Println(num) } } func main() { slice := []int{1, 2, 3, 4} printNums(slice...) // 输出:1 2 3 4 }
在上述示例中,printNums()函数接受可变参数nums,我们将一个切片slice传递给该函数时,在切片后面加上三个点(…),表示将切片解包为独立的元素。