Golang 使用带有变量参数列表

Golang 使用带有变量参数列表

在Golang中,可以用变量参数列表调用函数,这被称为可变函数。可以在变量函数中传递零个或更多个参数。如果函数定义的最后一个参数以省略号…为前缀,则该函数可以接受该参数的任意数量的参数。

可变函数的语法:

func f(elem ...Type)
Go

这里的…运算符告诉Golang程序将Type的所有参数都存储在elem参数中。之后,Go将创建一个类型为[]Type的elem变量。因此,所有传递的值都存储在一个名为elem的参数中,其是一个切片。可以将一个切片传递给参数列表,因为最终函数会将它们转换为切片。

更多信息可见Golang中的可变函数。

使用可变函数的好处:

  • 将切片传递给函数非常容易。
  • 当参数数量未知时很有用。
  • 增加程序的可读性。

我们看一些使用函数和可变参数列表的例子:

示例1:

//使用带有可变参数列表的函数的Go程序
package main
  
//导入所需的包
import (
    "fmt"
)
  
//可变函数返回数字的和
func add(num ...int) int {
    sum := 0
    for j := range num {
        sum += j
    }
    return sum
}
  
func main() {
    fmt.Println("Sum =", add(1, 2, 3, 4, 5, 7, 8, 6, 5, 4))
} 
Go

输出:

Sum = 45
Go

示例2: 可以将切片用作参数列表。

//使用带有可变参数列表的函数的Go程序
//使用切片作为参数列表
package main
  
//导入所需的包
import (
    "fmt"
)
  
//检查元素是否存在于列表中
func check(x int, v ...int) {
  
    flag := false
    index := 0
    for i, j := range v {
        if j == x {
            flag = true
            index = i
        }
    }
  
    if flag {
        fmt.Println("Element ", x, " found at index:", index)
    } else {
        fmt.Println("Element not present in the list")
    }
}
func main() {
    el := []int{1, 1, 2, 3, 4, 5, 6, 7, 8, 9}
    check(1, el...)
    check(10, el...)
} 
Go

输出:

Element  1  found at index: 1
Element not present in the list
Go

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程