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

文章编号:5147 安全相关 2023-10-18

‘…'其实是go的一种语法糖。它的第一个用法主要是用于函数有多个不定参数的情况,可以接受多个不确定数量的参数。第二个用法是slice可以被打散进行传递。

深入浅析Go中三个点用法

packagemainimport("fmt")funcmain(){name(1,2,3,4,5,6,7,8,9)//多个不确定数量的参数varstrss=[]string{"qwr","234","yui","cvbc",}test1(strss...)//切片被打散传入strss...等同于"qwr","234","yui","cvbc"}funcname(args...int){//可以接受任意个int参数for_,v:=rangeargs{fmt.Println(v)}}functest1(args...string){//可以接受任意个string参数for_,v:=rangeargs{fmt.Println(v)}}

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

众所周知,Go语言是严格类型语言,而开发的时候又遇到传入参数不定的情况,怎么办?

这里的三个点(…),就给我们编程人员带来很大的灵活性,具体如下

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

packagemainimport("fmt""log")funcmain(){//multiParam可以接受可变数量的参数names:=[]string{"jerry","herry"}//在数组文字中,...符号指定的长度等于文字中元素的数量。stooges:=[...]string{"Moe","Larry","Curly"}stoogxs:=[]string{"Moe","Larry","Curly"}strParam("jerry","herry")strParam(names...)//通过Append合并两个slicestoogxs=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))}funcstrParam(args...string){//接受的参数放在args数组中for_,e:=rangeargs{log.Println(e)}}funcintParam(args...int){res:=0for_,n:=rangeargs{res=n}log.Println(res)}

变长的函数参数

如果最后一个函数参数的类型的是...T,那么在调用这个函数的时候,我们可以在参数列表的最后使用若干个类型为T的参数。这里,...T在函数内部的类型实际是[]T.

funcintParam(args...int){res:=0for_,n:=rangeargs{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命令行中的通配符

描述包文件的通配符。在这个例子中,会单元测试当前目录和所有子目录的所有包:

gotest./...

到此这篇关于深入浅析Go中三个点(...)用法的文章就介绍到这了,更多相关中三个点(...)用法内容请搜索完美下载以前的文章或继续浏览下面的相关文章希望大家以后多多支持完美下载!

全局中部横幅
亿邮(eYou)电子邮件系统

邮件系统,信创,信创邮件系统,国产电子邮件系统,邮件服务器,电子邮件系统,邮件服务器软件,企业邮箱,企业邮件,安全邮箱,智能运维

爱好网站导航大全

LOL网址导航网是专业的上网导航网站,精心收录各类优质热门网站信息,同时提供天气、快递、违章等各种生活便民查询工具网址,为您提供安全便捷的上网导航服务,现已被众多网友设为上网主页,网址导航大全首选LOL网址导航.

国美触屏版

国美(gome.com.cn)国美电器唯一官方网上商城,中国领先的专业家电网购平台。全球品牌电视、洗衣机、电脑、手机、数码、空调、电脑配件、生活电器、网络产品等正品行货,更低价格,更快送达,为您提供便捷、诚信的服务。有国美,生活美!

七六网

七六网是生活百科网站,主要分享生活百科知识等

抛丸机

青岛华铸科技公司是专业的抛丸机厂家,主要型号有路面抛丸机、通过式抛丸机、吊钩式抛丸机配件等,为您量身打造全套抛丸机系统解决方案。价格合理,欢迎来电订购。

过滤加油机

重庆通瑞过滤设备制造有限公司(www.trgl.cn)是过滤加油机,绝缘油真空滤油机,润滑油脱水滤油机,润滑油过滤机供应商,公司始终坚持“市场立业,用心创造”的经营理念,不断追求质量,竭诚为用户服务。

四川发展(控股)有限责任公司

“5.12”汶川大地震发生后,为创新投融资体制、解决四川跨越发展中的资金难题、推动重大基础设施项目建设和“5.12”灾后重建,四川省委决定通过资产重组、分类整合存量资产的方式组建省级综合型投融资公司和专业产业投资公司,并于2009年1月正式授牌成立了四川发展(控股)游戏那责任公司,公司注册资本金800亿元。

全局底部横幅