語法糖(Syntactic sugar),也譯為糖衣語法,是由英國(guó)計(jì)算機(jī)科學(xué)家彼得·約翰·蘭達(dá)(Peter J. Landin)發(fā)明的一個(gè)術(shù)語,指計(jì)算機(jī)語言中添加的某種語法,這種語法對(duì)語言的功能并沒有影響,但是更方便程序員使用。通常來說使用語法糖能夠增加程序的可讀性,從而減少程序代碼出錯(cuò)的機(jī)會(huì)。
下面通過例子看下Go語法糖之‘...' 的使用,具體內(nèi)容如下所示:
‘…' 其實(shí)是go的一種語法糖。
它的第一個(gè)用法主要是用于函數(shù)有多個(gè)不定參數(shù)的情況,可以接受多個(gè)不確定數(shù)量的參數(shù)。
第二個(gè)用法是slice可以被打散進(jìn)行傳遞。
下面直接上例子:
1
2
3
4
5
6
7
8
|
func test1(args ...string) { // 可以接受任意個(gè)string參數(shù) for _, v := range args{ fmt .Println( v ) } }func main(){var strss= []string{ "qwr" , "234" , "yui" , "cvbc" , } test1(strss...) // 切片被打散傳入 }123456789101112131415 |
結(jié)果:
qwr
234
yui
cvbc1234
其中strss切片內(nèi)部的元素?cái)?shù)量可以是任意個(gè),test1函數(shù)都能夠接受。
第二個(gè)例子:
1
2
3
4
5
|
var strss= []string{ "qwr" , "234" , "yui" , } var strss2= []string{ "qqq" , "aaa" , "zzz" , "zzz" , } strss=append(strss,strss2...) //strss2 的元素被打散一個(gè)個(gè)append進(jìn)strssfmt.Println(strss)1234567891011121314 |
結(jié)果:
[qwr 234 yui qqq aaa zzz zzz]
如果沒有'…',面對(duì)上面的情況,無疑會(huì)增加代碼量,有了'…',是不是感覺簡(jiǎn)潔了許多
總結(jié)
以上所述是小編給大家介紹的Go語法糖之‘...' 的使用實(shí)例詳解,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!
原文鏈接:https://studygolang.com/articles/15357