Go 中的可選引數

Jay Singh 2023年1月30日 2022年4月22日
  1. 在 Go 中使用 variadic 函式傳遞可選引數
  2. 在 Go 中使用 variadic 函式傳遞多個字串
Go 中的可選引數

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

相關文章 - Go Variadic