數(shù)組數(shù)據(jù)結(jié)構(gòu):
數(shù)組是一種基本的數(shù)據(jù)結(jié)構(gòu),它包含一系列元素,每個元素都有一個索引。數(shù)組中的元素可以是任何類型,包括其他數(shù)組。數(shù)組的大小在創(chuàng)建時確定,并且在以后不能改變。
代碼示例:
// 創(chuàng)建一個包含 5 個整數(shù)的數(shù)組 var numbers [5]int // 給數(shù)組中的元素賦值 numbers[0] = 1 numbers[1] = 2 numbers[2] = 3 numbers[3] = 4 numbers[4] = 5 // 遍歷數(shù)組中的元素并打印出來 for i := 0; i < len(numbers); i++ { fmt.Println(numbers[i]) }
登錄后復(fù)制
輸出:
1 2 3 4 5
登錄后復(fù)制登錄后復(fù)制
數(shù)組的長度:
數(shù)組的長度可以使用 len()
函數(shù)獲取。
// 獲取數(shù)組的長度 length := len(numbers) // 打印數(shù)組的長度 fmt.Println(length)
登錄后復(fù)制
輸出:
5
登錄后復(fù)制
數(shù)組的元素:
數(shù)組的元素可以通過索引訪問。索引從 0 開始,到數(shù)組的長度減一結(jié)束。
// 獲取數(shù)組第一個元素 firstElement := numbers[0] // 打印第一個元素 fmt.Println(firstElement)
登錄后復(fù)制
輸出:
1
登錄后復(fù)制
數(shù)組的遍歷:
數(shù)組可以使用 for
循環(huán)遍歷。
// 遍歷數(shù)組中的元素并打印出來 for i := 0; i < len(numbers); i++ { fmt.Println(numbers[i]) }
登錄后復(fù)制
輸出:
1 2 3 4 5
登錄后復(fù)制登錄后復(fù)制
多維數(shù)組:
Go 語言還支持多維數(shù)組。多維數(shù)組是數(shù)組的數(shù)組。
// 創(chuàng)建一個二維數(shù)組 var matrix [3][3]int // 給二維數(shù)組中的元素賦值 matrix[0][0] = 1 matrix[0][1] = 2 matrix[0][2] = 3 matrix[1][0] = 4 matrix[1][1] = 5 matrix[1][2] = 6 matrix[2][0] = 7 matrix[2][1] = 8 matrix[2][2] = 9 // 遍歷二維數(shù)組中的元素并打印出來 for i := 0; i < len(matrix); i++ { for j := 0; j < len(matrix[i]); j++ { fmt.Println(matrix[i][j]) } }
登錄后復(fù)制
輸出:
1 2 3 4 5 6 7 8 9
登錄后復(fù)制
數(shù)組的切片:
數(shù)組的切片是數(shù)組的一部分。切片可以使用 []
操作符創(chuàng)建。
// 創(chuàng)建一個數(shù)組的切片 slice := numbers[1:3] // 打印切片中的元素 fmt.Println(slice)
登錄后復(fù)制
輸出:
[2 3]
登錄后復(fù)制
數(shù)組的比較:
數(shù)組可以使用 ==
和 !=
操作符進行比較。
// 創(chuàng)建兩個數(shù)組 var numbers1 = [5]int{1, 2, 3, 4, 5} var numbers2 = [5]int{1, 2, 3, 4, 5} // 比較兩個數(shù)組是否相等 fmt.Println(numbers1 == numbers2)
登錄后復(fù)制
輸出:
true
登錄后復(fù)制
數(shù)組的拷貝:
數(shù)組可以使用 copy()
函數(shù)進行拷貝。
// 創(chuàng)建一個數(shù)組 var numbers = [5]int{1, 2, 3, 4, 5} // 創(chuàng)建一個新的數(shù)組 var newNumbers = [5]int{} // 將數(shù)組拷貝到新的數(shù)組中 copy(newNumbers, numbers) // 打印新的數(shù)組 fmt.Println(newNumbers)
登錄后復(fù)制
輸出:
[1 2 3 4 5]
登錄后復(fù)制