Golang 可变函数示例
Go (Golang) 和其他主要编程语言一样支持可变参数函数。 可变参数函数是接受可变数量的相同类型参数的函数。 也定义为不定元数的函数。
可变参数函数在将可变数量的参数传递给 Go 函数时特别有用。
如何在 Go (Golang) 中定义可变参数函数
要定义可变参数函数,我们只需添加
func multiply(args ...int)
三个点后跟可变参数所属的类型。 在我们的例子中,argsit 只是一个 int
切片,我们可以像任何其他常规切片一样对其进行范围调整。
如何在 Go (Golang) 中使用可变参数函数
要将参数传递给可变参数函数,我们可以传递任意参数,只要类型是我们在函数签名中定义的类型即可。 我们也可以传递零参数
multiply()
multiply(1)
multiply(1, 2, 3, 4)
Go (Golang) 中的可变参数函数示例
让我们看几个例子来澄清一下。
package main
import (
"fmt"
)
func main() {
fmt.Println(multiply())
fmt.Println(multiply(2))
fmt.Println(multiply(1, 2, 3))
fmt.Println(multiply(1, 2, 3, 4, 0))
}
func multiply(args ...int) int {
acc := 1
for _, n := range args {
acc *= n
}
return acc
}
以上程序返回以下内容
大家还可以点击 运行示例 进行在线运行。
在 Go (Golang) 中使用带有可变函数的切片
只要使用以下表示法,我们也可以将切片直接传递给 Go (Golang) 中的可变参数函数。
nums := []int{1, 2, 3, 4}
multiply(nums...)
上面的表示法允许我们直接使用 ...
运算符将切片传递给可变参数函数。 我们可以在官方 Go Wiki 中查看更多切片技巧
让我们看一个关于如何在 Go 中将切片传递给可变参数函数的完整示例
package main
import (
"fmt"
)
func main() {
fmt.Println(multiply([]int{}...))
fmt.Println(multiply([]int{2}...))
fmt.Println(multiply([]int{1, 2, 3}...))
fmt.Println(multiply([]int{1, 2, 3, 4, 0}...))
}
func multiply(args ...int) int {
acc := 1
for _, n := range args {
acc *= n
}
return acc
}
以上程序返回以下内容
大家也可以点击 运行示例 在线查看结果。
相关文章
在 Golang 中使用 If-Else 和 Switch Loop Inside HTML 模板
发布时间:2023/04/27 浏览次数:65 分类:Go
-
本篇文章介绍了在 Golang 的 HTML 模板中使用 if-else 和 switch 循环。因此,只要输出是 HTML,就应该始终使用 HTML 模板包而不是文本模板。
Golang 中的零值 Nil
发布时间:2023/04/27 浏览次数:166 分类:Go
-
本篇文章介绍 nil 在 Golang 中的含义,nil 是 Go 编程语言中的零值,是众所周知且重要的预定义标识符。
Golang 中的 Lambda 表达式
发布时间:2023/04/27 浏览次数:93 分类:Go
-
本篇文章介绍如何在 Golang 中创建 lambda 表达式。Lambda 表达式似乎不存在于 Golang 中。 函数文字、lambda 函数或闭包是匿名函数的另一个名称。
在 Go 中使用断言
发布时间:2023/04/27 浏览次数:181 分类:Go
-
本篇文章介绍了 assert 在 GoLang 中的使用。在 Go 语言中使用断言:GoLang 不提供对断言的任何内置支持,但我们可以使用来自 Testify API 的广泛使用的第三方包断言。
Go 中的随机数生成
发布时间:2023/04/27 浏览次数:114 分类:Go
-
本篇文章介绍如何在 Go 语言中使用随机数生成功能。Go 中的随机数生成 Go 语言为随机数生成功能提供内置支持。 内置包 math 有方法 rand(),用于随机数生成。
在 Go 中使用 Electron API 创建 GUI
发布时间:2023/04/27 浏览次数:124 分类:Go
-
本篇文章介绍如何在 Go 语言中使用 Electron API 创建 GUI。Electron API 或 Astilectron 用于为 GoLang 创建 GUI。
在 GoLang 中安装包
发布时间:2023/04/27 浏览次数:122 分类:Go
-
使用 Go 语言的 get 命令安装所需的包非常容易。 Go 语言提供了多种命令来执行某些任务,get 就是其中之一。