美文网首页
2023-10-26

2023-10-26

作者: 护念 | 来源:发表于2023-10-25 22:43 被阅读0次

今日总结

今日学习了go的slice,内容比较多没看完。

学到的知识点

1. 创建切片的方式

make最多

// 方式1. var
var a []int  // 此时切片是空的 

// 方式2. make
b1 := make([]int, 2)  // 后两位参数分别为 len、cap 此时 len == cap
b2 := make([]int,2, 4) // len=2 --会初始化两个元素0, cap的为4

// 方式3 直接初始化值
c := []int{1,2,3,4}
c1 := []int{0,1,2,3, 8: 100} // 这里8代表最大索引为8,最后一个元素是100
等效于 {0, 1, 2, 3, 0, 0, 0, 0, 100}

// 方式4: 切片中切出
aa = []int{1,2,3,4,5}
bb := [1:3] // 左包含右边不包含

2. 切片是引用,切出来的东东仍然是引用

底层是数组,它的容量可以自动扩展,当达到容量后,自动扩容,会有开销

3. 切片中切的几种写法

记住原则

  1. [low:hight] 左包含 右边不包含
  2. [:hight] 或 [low:] 或 [:]凡是没写具体值,都认为它是定格处理,也就达到原切片最左/最右位置
  3. [low:high:max] // 三个参数,前两个和原来意义一样;多出的一个代表最大索引,变相指定了cap=max-low

4. 切片类型是切片

// 二维切片
data := [][]int{
  {1, 2, 3},
  {4, 5, 6},
  {7, 8, 9}, // 最后一行必须要逗号
}

fmt.Printf("data: %#v\n", data)

// 和上面写法等价 但是冗余了
// data := [][]int{
//  int{1,2,3},
//  int{4,5,6},
//  int{7,8,9},
//}

明日安排

继续学习未完成的slice部分,然后开始学习数组。

相关文章

  • 2023-10-26

    2023.10.25周三 想早点回家休息。晚上做干煸芸豆和黄瓜炒鸡蛋。或者是蒜毫炒肉。白天买点肉解馋。宝想吃鸡心土...

网友评论

      本文标题:2023-10-26

      本文链接:https://www.haomeiwen.com/subject/hvcyidtx.html