1)数组是多个相同类型数据的组合,一旦声明/定义了,其长度和数据类型也是固定的,不能动态变化
package main
import (
"fmt"
)
func main() {
// 数组是多个相同类型数据的组合,一个数组一旦声明/定义了,其数据类型和长度是固定的,不能动态变化
var arr01 [3]int
arr01[0] = 1
arr01[1] = 30
// arr01[2] = 1.1 // 这里会报错,数据类型不匹配
arr01[2] = 3
arr01[3] = 890 // 这里会报错,越界(超过了数组长度)
fmt.Println(arr01)
}
2)var arr []int 这时 arr不是一个数组,而是一个slice切片,切片后面专门讲解
3)数组中的元素可以是任意数据类型,包括值类型和引用类型,但是不能混用
4)数组创建后,如果没有赋值,有默认值(零值)
数值类型数组 默认为0
字符串数组 默认值为 ""
bool数组 默认值为false
package main
import (
"fmt"
)
func main() {
var arr01 [3]float64
var arr02 [3]string
var arr03 [3]bool
fmt.Println("arr01",arr01)
fmt.Println("arr02",arr02)
fmt.Println("arr03",arr03)
}
5)使用数组的步骤 1.声明数组并开辟空间 2. 给数组各个元素赋值(默认零值)3. 使用数组
6)数组的下标是从0开始的
7)数组下标必须在指定范围内使用,否则包panic:数组越界,比如
var arr[5]int 则有效下标为0-4
8)Go的数组属于值类型,在默认情况下是值传递,因此会进行值拷贝,数组间不会相互影响
9)如果想在其它函数中,去修改原来的数组,可以使用引用传递(指针方式)
10)长度是数组类型的一部分,在传递函数参数时,需要考虑数组的长度,看下面案例