京东云服务器推荐配置、多种配置选择,满足不同业务需求!

热门推荐

⭐ 稳定入门选择

配置:2核2G/5M

适用场景:个人站点 / 轻量应用

特点:性价比高,稳定可靠

¥19/月
立即购买
流量友好

☁️ 轻量云主机

配置:2核4G 5M

适用场景:小型业务 / 博客 / 测试环境

特点:流量友好,性能均衡

¥149/年
立即购买
高性能

💻 云服务主机

配置:4核16G 8M

适用场景:中小型服务 / 多并发场景

特点:充足内存与带宽,性能强劲

¥750/年
立即购买
新人专享

🎁 新人福利

新人访问 → 点击 → 最新活动

可获取 3000元 礼券

立即领取
服务端 / Golang 教程 / Golang 函数 & 方法
Go 变参函数
Go 匿名函数Go 语言函数

Go 语言变参函数

用不同数量的参数调用的函数称为可变参数函数。换句话说,允许用户在可变函数中传递零个或多个参数。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

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

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

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

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

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