golang 变量三个点

作者: adm 分类: go 发布时间: 2024-01-06

在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传递给该函数时,在切片后面加上三个点(…),表示将切片解包为独立的元素。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!