go編程基礎視頻筆記-數(shù)組與切片map

數(shù)組Array

定義數(shù)組的格式:var <varName> [n]<type>,n>=0
數(shù)組長度也是類型的一部分,因此具有不同長度的數(shù)組為不同類型
注意區(qū)分指向數(shù)組的指針和指針數(shù)組
數(shù)組在Go中為值類型
數(shù)組之間可以使用==或!=進行比較,但不可以使用<或>
可以使用new來創(chuàng)建數(shù)組,此方法返回一個指向數(shù)組的指針
Go支持多維數(shù)組

切片Slice

其本身并不是數(shù)組,它指向底層的數(shù)組
作為變長數(shù)組的替代方案,可以關聯(lián)底層數(shù)組的局部或全部
為引用類型
可以直接創(chuàng)建或從底層數(shù)組獲取生成
使用len()獲取元素個數(shù),cap()獲取容量
一般使用make()創(chuàng)建
如果多個slice指向相同底層數(shù)組,其中一個的值改變會影響全部
make([]T, len, cap)
其中cap可以忽略,則和len的值相同
len表示存放的元素個數(shù),cap表示容量

Reslice

Reslice時創(chuàng)建索引以被slice的切片為準
索引不可以超過被slice的切片的容量cap()值
索引越界不會導致底層數(shù)組的重新分配而是引發(fā)錯誤

Append

可以在slice尾部追加元素
可以將一個slice追加在另一個slice尾部
如果最終長度未超過追加到slice的容量則返回原始slice
如果超過追加到slice的容量則將重新分配數(shù)組并拷貝原始數(shù)據(jù)

Copy

map

類似其他語言中的哈希表或者字典,以key-value形式存儲數(shù)據(jù)
key必須是支持==或!=比較運算的類型,不可以是函數(shù)、map或slice
map查找比線性搜索快很多,但比使用索引訪問數(shù)據(jù)的類型慢100倍
map使用make()創(chuàng)建,支持:=這種簡寫
make([keyType]valueType, cap),cap表示容量,可省略
超過容量時自動擴容,但盡量提供一個合理的初始值
使用len()獲取元素個數(shù)
鍵值對不存在時自動添加,使用delete()刪除某鍵值對
使用for range對map和slice進行迭代操作

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容