阅读 100

Go 语言变参函数

用不同数量的参数调用的函数称为可变参数函数。换句话说,允许用户在可变函数中传递零个或多个参数。fmt.Printf是可变参数函数的示例,它在开始时需要一个固定的参数,之后它可以接受任意数量的参数。

重要事项:

  • 在可变参数函数的声明中,最后一个参数的类型前面带有省略号,即()。它表明该函数可以调用任意数量的这种类型的参数

    语法:

    function function_name(para1, para2...type)type{
        // code...}
  • 函数function …type的行为类似于切片(slice)。例如,假设我们有一个函数签名,即add(b…int)int,现在是type [] int的参数。

  • 您还可以在可变参数函数中传递现有切片。为此,我们将完整数组的一部分传递给函数,如下面的示例2所示。

  • 当您在可变参数函数中不传递任何参数时,函数内部的默认为nil。

  • 可变参数函数通常用于字符串格式化。

  • 您还可以在可变参数函数中传递多个切片。

  • 您不能将可变参数用作返回值,但可以将其作为切片返回。

零个参数和多个参数演示示例:

示例

package mainimport (
    "fmt"    "strings")//可变参数函数联接字符串func joinstr(element ...string) string {
    return strings.Join(element, "-")
}func main() {

    //零参数    fmt.Println(joinstr())

    //多个参数    fmt.Println(joinstr("GEEK", "GFG"))
    fmt.Println(joinstr("Geeks", "for", "Geeks"))
    fmt.Println(joinstr("G", "E", "E", "k", "S"))

}

输出:

GEEK-GFG
Geeks-for-Geeks
G-E-E-k-S

范例2,可变参数函数联接字符串,在可变函数中传递一个切片:

示例

package main 
  import( 
    "fmt"    "strings") 
  //可变参数函数联接字符串func joinstr(element...string)string{ 
    return strings.Join(element, "-") 
} 
  func main() { 
     
   //在可变函数中传递一个切片   element:= []string{"geeks", "FOR", "geeks"} 
   fmt.Println(joinstr(element...)) 
}

输出:

geeks-FOR-geeks

当我们使用可变参数函数时:

  • 当您要在函数中传递切片时,使用可变参数函数。

  • 当我们不知道参数的数量时,使用可变参数函数。

  • 在程序中使用可变参数函数时,它可以增加程序的可读性。


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐