1、定义数组
package main
import "fmt"
func main() {
// 数组初始化 第一种写法
var arr1 [3]int
arr1[1] = 0
arr1[2] = 1
fmt.Println(arr1)
//第二种写法
arr2 := [3]int{1, 2, 3}
fmt.Printf("类型%T", arr2)
//第三种写法 让编译器根据初始值个数自行推断数组长度
arr3 := [...]int{1, 2, 3, 4, 5}
fmt.Printf("类型%T", arr3)
//第四种写法
array4 := [...]int{0: 1, 1: 2, 2: 3}
fmt.Println(array4)
fmt.Println(len(array4))
}
2、数组的循环遍历
for 循环和for range循环
func main() {
array := [...]int{1, 2, 3, 4, 5}
for i := 0; i < len(array); i++ {
fmt.Println(i, array[i])
}
for key, value := range array {
fmt.Println(key, value)
}
}
3、数组类型
基本数据类型和数组是值类型,赋值和传参会复制整个数组。因此改变副本的值,不会改变本身的值(和js中数组的区别,参考深拷贝、浅拷贝)
4、二维数组
func main() {
arr1 := [3][2]string{
{"北京", "上海"},
{"广州", "深圳"},
{"哈尔滨", "山东"},
}
arr2 := [...][2]string{
{"北京", "上海"},
{"广州", "深圳"},
{"哈尔滨", "山东"},
}
for _, value := range arr1 {
for _, v := range value {
fmt.Println(v)
}
}
fmt.Print(arr1, arr2)
}