1.数组
数组是具有相同数据类型的数据项组成的一组长度固定的序列,数据项叫做数组的元素,数组的长度必须是非负整数的常量,长度也是类型的一部分。
1.1声明
数组声明需要指定组成元素的类型以及存储元素的数量(长度)。在数组声明后,其长度不可修改,数组的每个元素会根据对应类型的零值对进行初始化
package main
import "fmt"
func main() {
var names [10]string
var scores [10]int
fmt.Printf("%T, %T\n",names,scores)
fmt.Printf("%q\n",names)
fmt.Println(scores)
}
#索引
package main
import "fmt"
func main() {
var abc [10]int = [10]int{2:1000}
fmt.Println(abc)
}
#索引 0 > len-1
#0 1 2
索引打印的值为 [0 0 1000 0 0 0 0 0 0 0]
索引赋值
顺序赋值 [lenght]type{v1,v2,v3.......}
索引 [lenght]type{i1:v1,i2,v2....}
1.2字面量
*指定数据的长度
*使用初始化元素数量推到数组长度
*对指定位置元素进行初始化
package main
import "fmt"
func main(){
var names[10] string
var scores [5]int = [5]int{1,2,3,4,5} //数组赋值,字面量
fmt.Printf("%T\n",names)
fmt.Printf("%q\n",names)
fmt.Printf("%T\n",scores)
fmt.Println(names,scores)
}
1.2 数组操作
*关系运算== 、!=
package main
import "fmt"
func main(){
var names[10] string
var scores = [...]int{100,88} //数组赋值,字面量
fmt.Println(names,scores)
//运算
var nums [2]int = [...]int{88,100}
fmt.Println(nums == scores)
}
1.2.1 字面量访问
*访问值通过索引
package main
import "fmt"
func main(){
var scores = [...]int{100,88} //数组赋值,字面量
var nums [2]int = [...]int{88,100}
//运算
fmt.Println(nums == scores)
//访问
fmt.Println(nums[0])
nums[0] = 101
nums[1] = 102
fmt.Println(nums)
//赋值
nums[0] = 101
nums[1] = 102
fmt.Println(nums[0])
fmt.Println(nums[1])
}
1.2.2 数组长度
*使用len函数可以获取数组的长度
fmt.Println(len(nums))
1.2.3 数组容量
fmt.Println(cap(nums))
1.2.4 元素访问(遍历)
方法一:
for i :=0; i < len(nums); i++ {
fmt.Println(i,nums[i])
}
方法二:
for v := range nums {
fmt.Println(v,nums[v])
}
方法三:
for i, v := range nums{
fmt.Println(i,v)
}