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

全局中部横幅
北京市教育委员会

 北京市教育委员会门户网站由北京市教育委员会主办,北京教育网络和信息中心负责运行维护,是北京市教委和各处室在互联网上发布教育相关信息和提供在线服务的综合平台,权威发布北京市教育重大决策部署和重要政策文件以及各类便民提示,搭建北京教育与公众互动的交流渠道,展示北京教育风貌。

穿越防线小游戏,穿越防线小游戏大全,4399穿越防线小游戏,4399小游戏

4399穿越防线小游戏大全收录国内外穿越防线小游戏,穿越防线小游戏下载,穿越防线射击小游戏,穿越防线单机版小游戏,穿越防线在线小游戏,穿越防线狙击小游戏,穿越防线穿越火线小游戏等。

中展世贸国际会展

中展世贸(北京)国际会展有限公司(简称:中展世贸)ChinaExhibitionWorldCo.,Ltd(CEW)是AAA级信用企业、中国会展经济研究会的常务理事、ISO9001:2008国际质量体系认证单位,从事全球国际展览会议、市政风景园林、校园文化及经济贸易咨询等专业化国际公司。主要部门有展览部、后期服务部、市政工程部、投资运营部、设计部、咨询部、校园文化部、文化交流部及财务部

超跃科技

超跃科技超跃科技是一家专业生产高精密双面、多层印制电路板的高科技企业,2003年成立于深圳,2010年在赣州成立赣州市超跃科技有限公司。2019年深圳、赣州两个生产基地合并,深圳工厂搬迁至赣州,厂区占地面积6万平方米,现有设备可完成年生产产能200万平方米。

物联网平台

ThingsKit是一个开箱即用的物联网平台,它可以帮助您快速实现物联网的数据收集、分析处理、可视化和设备管理,支持通过行业标准物联网协议(MQTT、TCP、UDP、CoAP和HTTP)实现设备连接,帮助您屏蔽物联网的复杂特性,让您专注业务应用开发,缩短物联网项目的交付周期。

安防监控安装工程公司

新安宝科技(深圳)有限公司成立于1988年,国内领先的防盗报警器材产品供应商,专业从事视频监控、防盗报警器、小区监控安装、门禁、停车场、以及天网工程、智能交通红绿灯工程、电子警察工程等安装、设计、施工、维护.

「开达化工」氯化铑

陕西开达化工有限责任公司专业从事稀贵金属材料研发20余年,主要生产钯、铂、钌、铑、铱、金银等各系列贵金属催化剂、双氧化催化剂、活性钛阳极及PEM燃料电池和电解水制氢专用催化剂,高新技术企业。

南京灭鼠公司

南京三缘是一家专业有害生物防治公司,提供专业的病媒防治及各类害虫驱除服务、相关产品和培训,杀蟑螂灭蚂蚁跳蚤老鼠蚊蝇专利!

CHUNTAI

CHUNTAI-俊泰FLIR海事,FLIR安防,红外热成像,户外与战术系统,TAWOV,SPACECOM镜头,FLIR代理服务热线:400-808-2117

全局底部横幅