Golang 教程
Golang 控制语句
Golang 函数 & 方法
Golang 切片 & 数组
Golang 结构体
Golang 字符串
Golang 接口
Golang 指针
Golang 并发
Golang 异常(Error)
Golang 其他杂项

Go 语言变参函数

时间:2023年06月10日 阅读:279
以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!
淘客轩-衣食住行外卖生活好助手

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

重要事项:

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

    语法:

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

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

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

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

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

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

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

package main

import (
    "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

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

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

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

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

打赏

本文地址:https://www.momojc.cn/golang/go-variadic-functions.html

上一篇:Go 语言函数
下一篇:Go 语言匿名函数

关于本站 | 隐私政策 | 免责声明 | 广告合作 | 我要投稿 | 后台管理

CopyRight © 2023-2024 MOMO教程 WWW.MOMOJC.CN , All Rights Reserved.

站长E-mail:378074730@qq.com 网站已运行:  运行时长:0.038 秒

京ICP备20029690号-1京ICP备20029690号-2 京公网安备11011402013892号京公网安备11011402013892号 中国互联网违法和不良信息举报中心 网络违法犯罪举报网站

本网站托管于 腾讯云 .由网站卫士提供网站加速和攻击防御服务 提供CDN加速/防御服务.由zblogcn强力驱动 又拍云提供CDN加速/云存储服务 51la网站统计