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中。