Go语言是谷歌开发的一种静态强类型、编译组合的编程语言,具有垃圾收集功能。2009年11月正式宣布。2016年,Go被软件评测公司Tiobe评选为2016年TIOBE最佳语言。

Go语言简洁的语法、内存安全和并发计算受到互联网公司的青睐。这里有一个简单的语法糖。

.作为go语言的语法糖,有两个主要用途

作为函数的可变参数,它意味着你可以接受任意数量的相同类型的参数,package main。

导入(

fmt '

反映

)

功能打印(世卫组织.字符串){ 0

fmt。Println('类型为: ',反映。类型(谁)

对于_,v :=范围who {

fmt。Printf('%v\t ',v)

}

fmt。Println(')

}

func main(){ 0

用户:=[]字符串{ '张三','李四','吴王','刘钊' }

打印(' A ',' B ',' C') //1

打印(用户.) //2

print() //3

}

运行上面的代码打印如下:

类型为:[]字符串

张山李斯吴王刘钊

类型为:[]字符串

英国广播公司

类型为:[]字符串

从上面的代码可以看出,打印功能的参数定义为.第一次调用字符串类型时,传入三个字符常量,打印的who类型为[]字符串。

即.T型相当于[]T型。

官方文件中有这样的描述。

如果f与类型的最终参数p是可变的.那么在f中,p的类型相当于[]T的类型。如果f在没有p的实际参数的情况下被调用,传递给p的值为零。否则,传递的值是[]T类型的新切片,具有新的基础数组,其连续元素是实际参数,所有这些参数都必须可分配给T。因此,切片的长度和容量是绑定到p的参数数量,并且可能因每个调用点而异。

当print不传递参数时,who的值为nil,类型仍为[]string,如第三位所调用。

上面代码的第二部分中的打印调用是分解切片,然后将其作为不定参数传入.刺痛,这是下面的第二种用法。

采用我们常用的附加函数定义。

追加(S,S,x.T) S //T是S的元素类型

src :=[]int{1,2,3}

dst :=[]int{0}

dst=追加(dst,src.)

根据上面的代码,切片src的元素被分散并传递到dst中。