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


相关资料:txt下载doc下载文章搜索网址搜索百度搜索、好搜搜索、搜狗搜索

本文链接:http://www.gpxz.com/article/994677b2592406bf9111.html


全局中部横幅
全局中部横幅
关于百度

百度是一家持续创新的,以“用科技让复杂世界更简单”为使命的高科技公司。

UC浏览器官网

UC浏览器是全球6亿用户共同选择的智能手机浏览器,登陆UC官网免费下载UC浏览器安卓版/iPhone版,给您超快感的上网体验!

瘦腿的最快方法

对于小腿肌肉发达的人来说却十分发愁,怎么消灭小腿肌肉,还一双线条优美的大长腿呢?怎样瘦小腿,除了锻炼,没什么比避免糖分和油分高的食物更管用的。

娱乐新闻

环球网娱乐新闻频道为您报道新鲜的娱乐新闻,让您掌握第一手娱乐八卦资讯。栏目包括娱乐观点、明星写真、娱乐热图、影视、节目单、综艺等娱乐新闻资讯。

宁夏生活服务网站

宁夏生活服务网站排名,根据网站的综合值按照不同的宁夏生活服务网站进行筛选排名结果,通过筛选宁夏生活服务网站可以看到每个宁夏生活服务网站里面的网站排名优质的网站是哪些

百度PC排名

百度PC排名API数据接口根据域名和关键词返回百度PC关键词收录量、抓取时间、关键词排名(页数-第几条)、页面标题、页面链接地址。

字体传奇网

字体传奇网ziticq.com专注:字体笔画素材产品,商用字库产品,字体72变,字体设计教程学习,字体标志品牌定制为主,他们为了设计不抛弃,不放弃,旨在共同提高大家的设计水平,为设计而坚持!

学堂在线

学堂在线是清华大学于2013年10月发起建立的慕课平台,是教育部在线教育研究中心的研究交流和成果应用平台,是国家2016年首批双创示范基地项目,是中国高等教育学会产教融合研究分会副秘书长单位,也是联合国教科文组织(UNESCO)国际工程教育中心(ICEE)的在线教育平台。目前,学堂在线运行了来自清华大学、北京大学、复旦大学、中国科技大学,以及麻省理工学院、斯坦福大学、加州大学伯克利分校等国内外高校的超过2300门优质课程,覆盖13大学科门类。

360公益

360公益官方平台,由360发起,致力于通过科技创新,为网友提供安全、便捷的公益参与平台,推动公益慈善事业发展。

石家庄电脑回收

石家庄电脑回收T:15350562341,淘汰电脑回收,石家庄二手电脑回收,台式电脑回收,笔记本电脑回收,同时回收石家庄及周边地区打印机,复印机,线路板等办公设备

深圳市警威智能设备有限公司

深圳市警威智能设备有限公司成立于2016年,公司总部位于深圳特区华强创意产业园。是一家技术领先、专业从事智能警用设备及智能执法信息化整体解决方案的科技企业,集研发、制造、销售、服务于一体。

全局底部横幅