目录:
Go中的数组
在Go语言中,数组是同一类型元素的集合,而不像python,里面可有多种数据类型。Go语言中不约需混合不同类型的元素,例如包含字符串和整数的数组。
当时interface{}类型的数组,可以包含任意类型
数组的声明
示例:
// [3]表示数组长度,int表示数组内元素类型
var a [3]int=[3]int{1,2,3}
var a =[3]int{1,2,3}
a:=[3]int{1,2,3}
fmt.Println(a)
数组使用
示例:
package main
import "fmt"
func main() {
a := [3]int{1, 2, 3}
a[0] = 100
b := a[0]
fmt.Println(b)
}
不定长数组(不建议使用)
示例:
package main
import "fmt"
func main() {
// 指定索引9位置上的元素为1
a :=[...]int{9:1}
fmt.Println(a)
fmt.Println(len(a))
}
数组长度是数组类型的一部分
func main() {
a := [3]int{1, 2, 4}
// 当b数组长度更改为3时可以被赋值
b := [4]int{1, 2, 3}
b = a
fmt.Println(b)
}
Go语言中数组是值类型
python中列表是引用类型
for 循环遍历数组
两种方式
- 第一种
package main import "fmt" func main() { a:=[3]int{1,2,3} for i:=0;i<len(a);i++{ fmt.Println(a[i]) } }
- 第二种(常见)
package main import "fmt" func main() { a := [3]int {1, 2, 3} //range 可迭代 如果用一个值接收:就是索引 如果用两个值接收:就是索引和值 // 当不想获取索引时,i可以用_代替 for i,v:=range a { //fmt.Println(i) fmt.Println(a[i]) fmt.Println(v) } }
多维数组
-
使用for遍历
package main import "fmt" func main() { // 定义二维数组,第一层索引为2的初始值为[4 4 4] a := [5][3]int{2: {4, 4, 4}} fmt.Println(a) for i := 0; i < len(a); i++ { for j := 0; j < len(a[i]); j++ { fmt.Println(a[i][j]) } } }
-
使用for range遍历
package main import "fmt" func main() { a := [5][3]int{2: {4, 4, 4}} fmt.Println(a) for _, v := range a { for _, v1 := range v { fmt.Println(v1) } } }