- append
append:在切片末尾添加元素并返回结果。append函数原型:func append(slice []T, elements...T) 。其中T表示任意类型。
示例1:
1 arr1 := []int{1, 2, 3} 2 arr2 := append(arr1, 4, 5, 6) 3 fmt.Println(arr2) // 输出:1,2,3,4,5,6
append不仅能在切片末尾添加普通元素,还能在切片末尾添加切片。
1 arr1 := []int{1, 2, 3} 2 arr2 := []int{4, 5, 6} 3 arr3 := append(arr1, arr2...) // 此处必须要有 ... 否则编译器会报类型错误 4 fmt.Println(arr3) // 输出:1,2,3,4,5,6
- copy
copy:用于从一个数组切片复制到另一个数组切片。如果加入的两个数组切片不一样大,就会按其中较小的那个数组切片的元素个数进行复制。下面的示例展示了copy()函数的行为:
slice1 := []int{1, 2, 3, 4, 5}
slice2 := []int{5, 4, 3}
copy(slice2, slice1) // 只会复制slice1的前3个元素到slice2中 结果:slice2=1,2,3
copy(slice1, slice2) // 只会复制slice2的3个元素到slice1的前3个位置
个人疑问:既然copy能复制数组切片,那么能否复制数组呢?
疑问解答:通过实践测试,copy不能复制数组。编译时报错:arguments to copy must be slices;
- range
range:其含义是在一个数组中遍历每一个值,返回该值的下标值和此处的实际值。
1 func main() { 2 array := [5]int{1, 2, 3, 4, 5} 3 for i, v := range array { 4 fmt.Println("array[", i, "] = ", v) 5 } 6 }
array[ 0 ] = 1
array[ 1 ] = 2
array[ 2 ] = 3
array[ 3 ] = 4
array[ 4 ] = 5
有疑问加站长微信联系(非本文作者)