2023-10-29阶段1

2023-10-28  本文已影响0人  护念

今天周末,和往常不一样哦

对go数组的感想

它和其它语言的数组有很大差异,差异点:

  1. 它是值传递(非引用)
  2. 它的长度不能改变
  3. 它里面元素只能是同一种类型

在go中相较而言,切片用的更多

1. 数组的初始化方式

// 1. 标准式
var a [5]int 

// 2. 赋值方式 ... 代表其中元素个数可以自动推断
b := [...]int{1,2,3}

// 3. 根据索引初始化
c := [5]string{1: "您!", 3: "好啊"} // 1号索引是 您 3号索引是 "好啊"

// 4. 初始化二维数组
d := [3][2]int{} // 初始化3行2列数组
e := [...][2]int{{1,2},{4,5}} // 行数也可以推断

2. 数组的遍历和切片/map 都一样用的也是range

arr7 := [...][2]int{{1, 2}, {4, 8}}

// 二维数组遍历
for index, value := range arr7 {
  fmt.Printf("index=%#v; value=%#v\n", index, value)
}

for row, val_arr := range arr7 {
    for column, val := range val_arr {
    fmt.Printf("(row=%d, column=%d)=%d\n", row, column, val)
  }
}

3. 数组的cap 和 len 都是一样

a := [3]int{}
fmt.Println(len(a) == cap(a))
上一篇 下一篇

猜你喜欢

热点阅读