這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
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()函數的行為:
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:其含義是在一個數組中遍曆每一個值,返回該值的下標值和此處的實際值。
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