Go 中的可選引數
Jay Singh
2023年1月30日
variadic
函式在呼叫時具有可變數量的引數。它可以與零個或多個引數一起使用。
省略號 ...
可以在引數之前定義變數函式。
在 Go 中使用 variadic
函式傳遞可選引數
該函式將接受任意數量的整數
作為輸入。如果切片中已經有許多 args
,請使用 func(slice...)
將它們應用於 variadic
函式。
package main
import "fmt"
func sum(nums ...int) {
fmt.Print(nums, " ")
total := 0
for _, num := range nums {
total += num
}
fmt.Println(total)
}
func main() {
sum(1, 2)
sum(1, 2, 3)
nums := []int{1, 2, 3, 4}
sum(nums...)
}
輸出:
[1 2] 3
[1 2 3] 6
[1 2 3 4] 10
在 Go 中使用 variadic
函式傳遞多個字串
提供給 s
引數的引數數量沒有限制。樹點省略號通知編譯器該字串可以具有從零到多個的任意數量的值。
package main
import "fmt"
func main() {
variadic()
variadic("white", "black")
variadic("white", "black", "blue")
variadic("white", "black", "blue", "purple")
}
func variadic(s ...string) {
fmt.Println(s)
}
輸出:
[]
[white black]
[white black blue]
[white black blue purple]
讓我們編寫一個程式,當他們的名字被提供給函式時向他們打招呼:
package main
import "fmt"
func main() {
sayHello()
sayHello("Jay")
sayHello("Jessica", "Mark", "Jonas")
}
func sayHello(names ...string) {
for _, n := range names {
fmt.Printf("Hello %s\n", n)
}
}
輸出:
Hello Jay
Hello Jessica
Hello Mark
Hello Jonas