Go 语言中的变参

在开发过程中,很有可能会遇到不确定传入参数数量的问题。比如答题系统开发时,可能会遇到多选题,这里面就无法确定传入参数的数量。此时就需要一个变参传递的方案,在 Go 语言中,使用...来接收或者传递变。

1. 使用…来接收变参

在函数的参数类型前加上...就可以用于接收不定长度的该类型的变参,如果连类型也无法确定,则使用...interface{}。变参类型的参数在使用时是一个变参类型的切片。

代码示例:

package main

import "fmt"

func main() {
    variableParameter(1, 2, 3, 4, 5)
}

func variableParameter(i ...int) {
    fmt.Println("输出变参:", i)
}
  • 第 9 行:定义变参函数,其变参类型为 int。
  • 第 6 行:传入 5 个参数。

执行结果:

image.png

2. 使用…来传递变参

当你传递的参数是一个切片时,此时你无法确定其长度,你就可以用...来传递其全部的值到变参函数中。

代码示例:

package main

import "fmt"

func main() {
    i := []int{1, 2, 3, 4, 5}
    variableParameter(i...)//传递i中的所有值
}

func variableParameter(i ...int) {
    fmt.Println("输出变参:", i)
}

执行结果:

image.png

3. 小结

本文主要讲解了 Go 语言中如何使用变参。变参在函数中的使用是可以作为一个切片来使用的,而当一个切片想要传值给变参时,只需要在切片后加上...