Go 数组

Go 数组

数组用于在单个变量中存储相同类型的多个值,而不是为每个值声明单独的变量。

声明数组

在 Go 中,有两种声明数组的方法:

使用 var 关键字:

语法

var array_name = [length]datatype{values} // 这里定义了长度

或者

var array_name = [...]datatype{values} // 这里长度是推断出来的

使用 := 符号:

语法

array_name := [length]datatype{values} // 这里定义了长度

或者

array_name := [...]datatype{values} // 这里长度是推断出来的

注意:长度指定了要在数组中存储的元素数量。在 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 的默认值为 0string 的默认值为 ""

实例

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

亲自试一试