【Golang】Go中三个点(...)用法
众所周知,Go语言是严格类型语言,而开发的时候又遇到传入参数不定的情况,怎么办?
这里的三个点(…),就给我们编程人员带来很大的灵活性,具体如下
在Golang中,三个点一共会用在四个地方(话说三个点的官方说法是什么?):
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | package main import ( "fmt" "log" ) func main() { //multiParam 可以接受可变数量的参数 names := []string{ "jerry" , "herry" } //在数组文字中,...符号指定的长度等于文字中元素的数量。 stooges := [...]string{ "Moe" , "Larry" , "Curly" } stoogxs := []string{ "Moe" , "Larry" , "Curly" } strParam( "jerry" , "herry" ) strParam(names...) //通过append合并两个slice stoogxs = append(stoogxs, names...) fmt.Println(stoogxs) //标识数组元素个数,这里,...意味着数组的元素个数 log.Println(len(stooges)) nums := []int{4, 5, 6} stoogns := [...]int{4, 5, 6} intParam(1, 2, 3) intParam(nums...) //标识数组元素个数,这里,...意味着数组的元素个数 log.Println(len(stoogns)) } func strParam(args ...string) { //接受的参数放在args数组中 for _, e := range args { log.Println(e) } } func intParam(args ...int) { res := 0 for _, n := range args { res += n } log.Println(res) } |
变长的函数参数
如果最后一个函数参数的类型的是...T,那么在调用这个函数的时候,我们可以在参数列表的最后使用若干个类型为T的参数。这里,...T在函数内部的类型实际是[]T.
1 2 3 4 5 6 7 | func intParam(args ...int) { res := 0 for _, n := range args { res += n } log.Println(res) } |
调用拥有变长参数列表的函数
上面调用Sum函数时,是将变长参数分开写的。如果我们有一个slice,那么我们调用时不必将slice拆开再调用,直接在slice后跟...即可:
1 2 | nums := []int{4, 5, 6} intParam(nums...) |
标识数组元素个数
这里,...意味着数组的元素个数:
1 | stooges := [...]string{ "Moe" , "Larry" , "Curly" } // len(stooges) == 3 |
Go命令行中的通配符
描述包文件的通配符。
在这个例子中,会单元测试当前目录和所有子目录的所有包:
1 | go test ./... |
- 作者:踏雪无痕
- 出处:http://www.cnblogs.com/chenpingzhao/
- 本文版权归作者和博客园共有,如需转载,请联系 pingzhao1990#163.com
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步