Go語言 函數參數點點點(...)意義
Go語言 函數參數(function argument) 點點點(...)意義是,此函數可以傳入零個, 一個,或多個參數,此函數稱為 可變參數函數 (variadic function)。
舉例來說,假設有一個函數:
func giveMeString(s ...string)
則我們在呼叫此函數時,可以這樣呼叫:
giveMeString()
giveMeString("hello")
giveMeString("hello", "world")
以上呼叫函數的方式皆可,再多傳幾個 string 型態的參數都可以。 在Go語言標準函式庫裡,最有名的例子是 fmt.Printf ,相信大家都有用過。
同場加映
延續上面的例子,假設有一個 []string 型態的變數想要傳入上面的函數, 該怎樣做呢?
比方說:
s := []string{"hello", "world"}
上面這個變數該如何傳入呢? 答案:
s := []string{"hello", "world"}
giveMeString(s...)
在變數名稱後一樣加三個點就可以傳入。
References:
[1] |
[2] | go - dot dot dot in Golang. interface with empty braces - Stack Overflow |
[3] |