不定参数是指函数传入的参数个数为不定数量。
成都创新互联是一家集网站建设,滨湖企业网站建设,滨湖品牌网站建设,网站定制,滨湖网站建设报价,网络营销,网络优化,滨湖网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。一、函数定义
首先来看如何定义一个不定参数的函数:
func YourFun(v... interface{}){ }
该函数定义,定义了一个接受任何数目任何类型参数的函数。这里特殊的语法是三个点“...
”,在一个变量后面加上三个点后,表示从该处开始接受不定参数,不同于python,golang的不定参数如果将这里"interface{}
" 替换成某一确定类型,那么其就只能接受该类型的不定参数。
二、“...”
上面我们看到有三个点"..."的特殊标记。那么这三个点"..."有啥作用呢?
2.1 不定参数
如上所述,在定义不定参数时,表示从该参数开始记录不定参数
2.2 解引用slice
当要传递若干个值到不定参数函数中得时候,可以手动书写每个参数,也可以将一个slice传递给该函数:
YourFunc (YourSlice...)
通过"...
"可以将slice中得参数对应的传递给函数。相当于python中得“*args”。
这里要注意的是,解引用slice目前只能在不定参数函数传递参数时使用,在其他地方使用会报错。
三、遍历参数
下面我们来看一个实例:
func P (v... string) { for _,item := range v { fmt.Println("item:",item) } } func main() { var l []string l = append(l,"a") l = append(l,"b") fmt.Println("l is ",l) P(l...) }
这里我们看到的结果是,首先一个完整的list,然后是每个元素:
l is [a b] item: a item: b
通过配合使用for...range
可以遍历不定参数v中得每个参数。这里我们将不定参数类型设为string,因此只能接受若干的string 类型的参数。
以上就是详解golang中的不定参数的详细内容,更多请关注创新互联成都网站设计公司其它相关文章!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。