深切浅析Go中三个点(...)用法

探索 · 2026-07-21 12:33:29

‘…' 理论上是深切go的一种语法糖  。
它的浅析第一个用法主假定用于函数有多个不定参数的气候,可以领受多个不竭天命方针参数。点用
第二个用法是深切slice可以被打散举办传递。

实例:

package main import (	"fmt") func main(){     name(1,浅析2,3,4,5,6,7,8,9) //多个不竭天命方针参数        var strss= []string{         "qwr",        "234",        "yui",        "cvbc",    }    test1(strss...) //切片被打散传进 strss... 齐截于 "qwr","234","yui","cvbc"} func name(args ...int) { //可以领受肆意个int参数    for _, v:= range args{         fmt.Println(v)    }} func test1(args ...string) {  //可以领受肆意个string参数    for _, v:= range args{         fmt.Println(v)    }}

上面看下Go中三个点(...)用法,具体内容以下所示 :

尽人皆知 ,点用Go言语是深切严格圭表类型言语 ,而斥地的浅析时辰又碰着传进参数不定的气候,若何办?点用

这里的三个点(…) ,就给我们编程人员带来很除夜的深切矫捷性,具体以下

在Golang中 ,三个点一共会用在四个中心(话说三个点的浅析官方说法是甚么?) :

代码以下:

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.

func intParam(args ...int) {     res := 0    for _, n := range args {         res += n    }    log.Println(res)}

调器具有变长参数列表的函数

上面调用Sum函数时,是将变长参数离开写的 。假定我们有一个slice ,那么我们调用时不必将slice拆开再调用,直接在slice后跟...便可 :

nums := []int{ 4, 5, 6}intParam(nums...)

标识数组元素个数

stooges := [...]string{ "Moe", "Larry", "Curly"} // len(stooges) == 3

这里,...意味着数组的元素个数 :

Go呼唤行中的通配符

描摹包文件的通配符 。
在这个例子中 ,会单位测试往后目次和全数子目次的全数包:

go test ./...

到此这篇关于深切浅析Go中三个点(...)用法的文章就引见到这了,更多相干Go中三个点(...)用法内容请搜刮完竣下载之前的文章或延续不雅不雅不雅不雅鉴赏上面的相干文章希看大年夜师往后多多支撑完竣下载!

文章推荐:

小鸡宝宝帮你担生果:以下哪一种山竹更别致?,蚂蚁庄园7.13日谜底

蚁族崛起气焰搭配推荐攻略

黑甜乡新诛仙智闯书山攻略除夜全

黑甜乡新诛仙各门派仙友搭配攻略

花雕酒是因为甚么得名?蚂蚁庄园7.3日谜底

江湖悠悠公测侠道熟手在行攻略

黑甜乡新诛仙探灵空桑山职位攻略除夜全

帆海王热血航路路奇上线时分最新消息

时分筹算局若何改削义务

CF手游宾果夺宝抽奖价值一览

帆海王热血航路剧情图鉴攻略职位除夜全最新

黑甜乡新诛仙神兽贪吃掉落踪掉落踪编制