Go 数组
Go 数组
数组用于将多个相同类型的值存储在一个变量中,而不是为每个值分别声明变量。
声明数组
在 Go 中,有两种方法可以声明数组
1. 使用 var
关键字
语法
var 数组名 = [长度]数据类型{值} // 这里定义长度
或
var 数组名 = [...]数据类型{值} // 这里推断长度
2. 使用 :=
符号
语法
数组名 := [长度]数据类型{值} // 这里定义长度
或
数组名 := [...]数据类型{值} // 这里推断长度
注意:长度指定要存储在数组中的元素数量。在 Go 中,数组的长度是固定的。数组的长度要么由数字定义,要么由编译器推断(这意味着编译器根据值的数量来决定数组的长度)。
数组示例
示例
此示例声明了两个数组(arr1 和 arr2),并定义了它们的长度
package main
import ("fmt")
func main() {
var arr1 = [3]int{1,2,3}
arr2 := [5]int{4,5,6,7,8}
fmt.Println(arr1)
fmt.Println(arr2)
}
结果
[1 2 3]
[4 5 6 7 8]
示例
此示例声明了两个数组(arr1 和 arr2),并推断它们的长度
package main
import ("fmt")
func main() {
var arr1 = [...]int{1,2,3}
arr2 := [...]int{4,5,6,7,8}
fmt.Println(arr1)
fmt.Println(arr2)
}
结果
[1 2 3]
[4 5 6 7 8]
示例
此示例声明了一个字符串数组
package main
import ("fmt")
func main() {
var cars = [4]string{"Volvo", "BMW", "Ford", "Mazda"}
fmt.Print(cars)
}
结果
[Volvo BMW Ford Mazda]
访问数组元素
您可以通过引用索引号来访问特定的数组元素。
在 Go 中,数组索引从 0 开始。这意味着 [0] 是第一个元素,[1] 是第二个元素,依此类推。
示例
此示例展示了如何访问 prices 数组中的第一个和第三个元素
package main
import ("fmt")
func main() {
prices := [3]int{10,20,30}
fmt.Println(prices[0])
fmt.Println(prices[2])
}
结果
10
30
修改数组元素
您也可以通过引用索引号来更改特定数组元素的值。
示例
此示例展示了如何更改 prices 数组中第三个元素的值:
package main
import ("fmt")
func main() {
prices := [3]int{10,20,30}
prices[2] = 50
fmt.Println(prices)
}
结果
[10 20 50]
数组初始化
如果数组或其元素在代码中没有初始化,则会分配其类型的默认值。
提示:int 的默认值为 0,string 的默认值为 ""。
示例
package main
import ("fmt")
func main() {
arr1 := [5]int{} // 未初始化
arr2 := [5]int{1,2} // 部分初始化
arr3 := [5]int{1,2,3,4,5} // 全部初始化
fmt.Println(arr1)
fmt.Println(arr2)
fmt.Println(arr3)
}
结果
[0 0 0 0 0]
[1 2 0 0 0]
[1 2 3 4 5]
仅初始化特定元素
可以仅初始化数组中的特定元素。
示例
此示例仅初始化数组的第二个和第三个元素:
package main
import ("fmt")
func main() {
arr1 := [5]int{1:10,2:40}
fmt.Println(arr1)
}
结果
[0 10 40 0 0]
示例解释
上面的数组有 5 个元素。
1:10
意味着:将10
分配给数组索引1
(第二个元素)。2:40
意味着:将40
分配给数组索引2
(第三个元素)。
查找数组的长度
len()
函数用于查找数组的长度
示例
package main
import ("fmt")
func main() {
arr1 := [4]string{"Volvo", "BMW", "Ford", "Mazda"}
arr2 := [...]int{1,2,3,4,5,6}
fmt.Println(len(arr1))
fmt.Println(len(arr2))
}
结果
4
6