Go基础_1_12 arr-1
package main
import "fmt"
func main() {
/*
数据类型:
基本类型:整数,浮点,布尔,字符串
复合类型:array,slice,map,struct,pointer,function,channel。。。
数组:
1.概念:存储一组相同数据类型的数据结构
理解为容器,存储一组数据
2.语法:
var 数组名 [长度] 数据类型
var 数组名 = [长度] 数据类型{元素1,元素2.。。}
数组名 := [...]数据类型{元素。。。}
3.通过下标访问
下标,也叫索引:index,
默认从0开始的整数,直到长度减1
数组名[index]
赋值
取值
不能越界:[0,长度-1]
4.长度和容量:go语言的内置函数
len(array/map/slice/string),长度
cap(),容量
*/
var num1 int
num1 = 100
num1 = 200
fmt.Println(num1) // 200
fmt.Printf("%p\n", &num1) // 0xc0000140a8
// step1:创建数组
var arr1 [4]int
fmt.Printf("%p\n", &arr1) // 0xc000010200
// step2:数组的访问
arr1[0] = 1
arr1[1] = 2
arr1[2] = 3
arr1[3] = 4
fmt.Println(arr1[0]) // 打印第一个数值 1
fmt.Println(arr1[2]) // 打印第三个数值 3
//fmt.Println(arr1[4]) //invalid array index 4 (out of bounds for 4-element array)
fmt.Println("数组的长度:", len(arr1)) // 容器中实际存储的数据量 4
fmt.Println("数组的容量:", cap(arr1)) // 容器中能够存储的最大的数量 4
// 因为数组定长,长度和容量相同
arr1[0] = 100
fmt.Println(arr1[0]) // 100
// 数组的其他创建方式
var a [4]int // 同 var a= [4] int
fmt.Println(a) // [0 0 0 0]
var b = [4]int{1, 2, 3, 4}
fmt.Println(b) // [1 2 3 4]
var c = [5]int{1, 2, 4}
fmt.Println(c) // [1 2 4 0 0]
var d = [5]int{1: 1, 3: 2}
fmt.Println(d) // [0 1 0 2 0]
var e = [5]string{"rose", "王二狗", "ruby"}
fmt.Println(e) // [rose 王二狗 ruby ]
f := [...]int{1, 2, 3, 4, 5}
fmt.Println(f) // [1 2 3 4 5]
fmt.Println(len(f)) // 5
g := [...]int{1: 3, 6: 5}
fmt.Println(g) // [0 3 0 0 0 0 5]
fmt.Println(len(g)) // 7
}