📜  如何在 Golang 中使用省略号 (…)?(1)

📅  最后修改于: 2023-12-03 15:24:10.654000             🧑  作者: Mango

如何在 Golang 中使用省略号 (...)?

省略号 (...) 在 Golang 中有两种使用方式,分别为可变参数和切片展开。在本文中,我们将介绍这两种使用方式。

可变参数

可变参数指的是函数参数的数量是可变的,这种特性在 Golang 中可以使用省略号 (...) 实现。下面是一个例子:

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

func main() {
    s := sum(1, 2, 3)
    fmt.Println(s) // 输出 6
}

在上面的例子中,sum 函数接收一个可变参数 nums,nums 的类型为 int 的切片。使用 for range 遍历 nums 并计算总和。

在调用 sum 函数时,可以传递任意数量的 int 类型参数,省略号 (...) 代表可变参数。比如 sum(1, 2, 3) 和 sum(1, 2, 3, 4, 5) 都是合法的调用。

切片展开

切片展开指的是将一个切片展开成可变参数,这个特性在 Golang 中同样可以使用省略号 (...) 实现。下面是一个例子:

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

func main() {
    nums := []int{1, 2, 3}
    s := sum(nums...)
    fmt.Println(s) // 输出 6
}

在上面的例子中,sum 函数仍然接收一个可变参数 nums,但是 main 函数中 nums 是一个切片。

在调用 sum 函数时,可以使用省略号 (...) 将 nums 展开成可变参数。比如 sum(nums...) 就相当于 sum(1, 2, 3)。

总结

本文介绍了在 Golang 中使用省略号 (...) 的两种方式:可变参数和切片展开。使用省略号 (...) 可以简化函数的定义和调用,使代码更加简洁明了。