参数赋值
主要用于函数传参时参数不定的情况
例子:
// 可变参数传参
package main
import "log"
func test(args ...string) { // 可以接受任意个string参数
for _, v:= range args{
log.Println(v)
}
}
func main(){
var arr = []string{
"ele1",
"ele2",
"ele3",
}
test(arr...) // 切片被打散传入
}
// 打印结果:
// ele1
// ele2
// ele3
切片解构
语法糖,将切片打散进行传递。可以实现优雅的合并两个数组,否则需要for
循环一个一个元素实现数组合并
例子:
package main
import (
"log"
)
func main() {
var arr1 = []string{
"ele1",
"ele2",
"ele3",
}
var arr2= []string{
"ele4",
"ele5",
}
arr1 = append(arr1,arr2...) // arr2的元素被打散一个个append进arr1
log.Println(arr1)
}
// 打印结果 : [ele1 ele2 ele3 ele4 ele5]
其他
未知个数的数组声明:
arr1 := [...]int {0,1,2,3,4,5,6,7}
arr2 := []int {0,1,2,3,4,5,6,7} // 等同于