官术网_书友最值得收藏!

variadic.go

In order to understand the first set of tests, we need to understand what a variadic function is and how Go handles it. Let's start with the definition:

Variadic function is a function that can accept any number of arguments during function call.

Given that Go is a statically typed language, the only limitation imposed by the type system on a variadic function is that the indefinite number of arguments passed to it should be of the same data type. However, this does not limit us from passing other variable types. The arguments are received by the function as a slice of elements if arguments are passed, else nil, when none are passed.

Let's look at the code to get a better idea:

// variadic.go 
 
package main 
 
func simpleVariadicToSlice(numbers ...int) []int { 
   return numbers 
} 
 
func mixedVariadicToSlice(name string, numbers ...int) (string, []int) { 
   return name, numbers 
} 
 
// Does not work. 
// func badVariadic(name ...string, numbers ...int) {} 

We use the ... prefix before the data type to define a functions as a variadic function. Note that we can have only one variadic parameter per function and it has to be the last parameter. We can see this error if we uncomment the line for badVariadic and try to test the code.

主站蜘蛛池模板: 临沭县| 万载县| 黄浦区| 固安县| 静乐县| 玛曲县| 濉溪县| 岳普湖县| 柳州市| 如东县| SHOW| 阿拉善盟| 鸡泽县| 卓资县| 钦州市| 澳门| 渑池县| 望谟县| 佛山市| 鄯善县| 高碑店市| 山西省| 滦南县| 阳原县| 读书| 平凉市| 团风县| 镇平县| 喀什市| 蕉岭县| 通渭县| 阿克苏市| 绥棱县| 崇仁县| 黑河市| 永昌县| 新兴县| 桂林市| 汾阳市| 阜新| 大渡口区|