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

休闲 · 2026-09-12 05:58:54

‘…' 理论上是深切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中三个点(...)用法内容请搜刮完竣下载之前的文章或延续不雅不雅不雅不雅鉴赏上面的相干文章希看大年夜师往后多多支撑完竣下载!

文章推荐:

《帕丁顿熊3》建造中 前两部导演保罗·金介入执导

上海电费被疑削价  ?有人晒出3000元账单,启事多是...

陈丹燕 :它给了我良多对都邑的熟谙,遭到良多经历 ,掉落踪掉落踪良多养分

展览中心外墙跑出了“机械人”!上海国际光影节明揭幕 ,记者探营“三展两秀”表态前的末尾一夜

房间残剩桶智能感应主动复位初级卫生

老字号鲜肉月饼哪家强?

专访赛艇传奇雷德格雷夫 :上艇让我看到了不一样的上海

视频丨超等“除夜月亮”上岸北外滩

卡梅隆监制的片子《六人》定档 揭秘泰坦尼克号旧事

啥  ?“三星堆”来上海开咖啡店了 ?另有更重磅的即将登场 !

俞天白道出快活喜悦爱好新平易近晚报的出处 :切近我们的糊口  ,回响了我们的时代,默示了竭诚的性格!

体育之育|吴敏霞陈芋汐火亮等重返母校 ,他们对学弟学妹说了些甚么?

热门浏览

标签列表