天天看點

go-數組和切片

數組和切片

數組:

聲明: var arr [5]int

初始化: arr := [3]int{1, 2, 5}

代碼:

go-數組和切片

概念:

  • 數組是值引用将一個數組指派另一個會拷貝所有元素
  • 給一個函數傳遞數組, 将收到一個數組所有元素, 而不是引用
  • 數組長度聲明之後就不可變化

切片:

聲明: var slice []int

初始化:

  1. 第一種初始化,基于數組方式(中括号中參數:startIndex和endIndex)
    go-數組和切片
  2. 第二種初始化方式(建立并初始化3個元素)
    go-數組和切片
  3. 第三種方式(也是比較常用方式, 初始化長度是5, 并預留10個空間, 初始化是5個0, 如果使用append追加元素,将會從index=5開始)
    go-數組和切片

概念:

  • 切片是對數組封裝, 切片可以看成一個大小可以變化的數組, 類似于java中List, Go中大部分程式設計通過切片完成
  • 切片持有對底層數組引用, 如果講一個切片指派另一個, 二者都會引用同一個數組, 如果一個函數接受一個切片作為參數, 那麼對切片所做的改動會對調用者可見, 好比傳遞一個引用.

append: go專門為切片提供内置函數, append用來增加元素.

go-數組和切片
go-數組和切片

繼續閱讀