# Day 28 : Golang variadic function ## 前言 原本寫完interface相關文章,要學習Golang是如何實現OOP,但覺得這主題感覺很大,然後interface又花了好多心力重新學習,今天就記錄個較簡單且實用的小主題,也就是之前常常出現的使用`...`的在函式的應用 - variadic function。 ## variadic function 有時候如果函式不能確定要接受多少數量的參數,例如當我中樂透要買東西的時候,看到想要的時候就買,要放入購物車要算加總多少錢的時候,根本不知道買了多少商品,也無法確切寫出每個商品的價格,這時候就可以用variadic function,定義如下 `func function_name(para1, para2...type)` 下面定義一個專門做加法的variadic function,不管輸入幾個數字,都可以完成加總並輸出。 這時候代表sum函式等待接收的是一連串型別為int的參數,然後在函式裡面收集成一個`[]int`。 ```go! func main() { sum(1,2,3) // 6 sum(100,300) // 400 sum(50) // 50 } func sum(nums ...int){ sum :=0 for _,num :=range nums{ sum += num } fmt.Println(sum) } ``` 使用variadic function的時候,也可以包含其他參數,但是數量不定的參數必須在固定參數**後面**。 ```go! func main() { sum("測試",1,2,3) // 測試 6 } func sum(s string,nums ...int){ sum :=0 for _,num :=range nums{ sum += num } fmt.Println(s,sum) } ``` ## References 1. [Variadic Functions in Go](https://www.geeksforgeeks.org/variadic-functions-in-go/) ###### tags: `About Go`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up