Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

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
自己试试 »

Go 练习

通过练习测试自己

练习

创建一个名为 cars 的字符串类型的数组

package main   
import ("fmt") 
func main() { var = [4]{"Volvo", "BMW", "Ford", "Mazda"} fmt.Print() }

开始练习


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.