(1) 声明数组
Go数组声明时必须确定数组大小和数组元素类型,数组元素类型可以为所有基本元素类型(**注意:**字符串类型在Go中也是基本数据类型)
var s[10] string //长度为10的字符串数组
同时,与java,c++不同的是,类型一致,长度不一致的数组不能相互赋值(因为Go数组类型由元素类型和数组大小共同决定)。
package main
import "fmt"
//数组
func main(){
var a1 [1]bool //定义数组必须指定存放元素的类型和容量
var a2 [2]bool
a2 = a1
fmt.Printf("%T,%T",a1,a2)
}
输出错误:
# command-line-arguments
./main.go:9:5: cannot use a1 (type [1]bool) as type [2]bool in assignment
(2)初始化数组
初始化数组的三种方式:
package main
import "fmt"
//数组
func main(){
var a3 [3]string //定义数组必须指定存放元素的类型和容量
//数组的初始化
//1. 初始化方式1
//常规初始化方式
a3 = [3]string{"有一群","漂亮的","小姑凉"}
fmt.Println(a3)
//2. 初始化方式2
//当不确定数组长度时使用
a4 := [...]string{"我爱我家","和狗狗"}
fmt.Println(a4)
fmt.Printf("%T\n",a4)
//3. 初始化方式3
//根据索引来初始化
a6 := [4]int{0:1,2:2}
fmt.Println(a6)
}
输出结果:
[有一群 漂亮的 小姑凉]
[我爱我家 和狗狗]
[2]string
[1 0 2 0]
(3)二维数组
package main
import "fmt"
//数组
func main(){
//声明并定义二维数组
b1 := [2][3]int{{1,2,3},
{4,5,6}}
fmt.Println(b1)
//修改二维数组值
b1[1][0] = 99
fmt.Println(b1)
}