GO語言數組,切片,MAP總結


數組

數組是具有相同唯一類型的一組已編號且長度固定的數據項序列,這種類型可以是任意的原始類型例如整形、字符串或者自定義類型。
數組的長度必須是常量,並且長度是數組類型的一部分。一旦定義,長度不能變。數組可以通過下標進行訪問,下標是從0開始,最后一個元素下標是:len-1,訪問越界(下標在合法范圍之外),則觸發訪問越界,會panic。
數組是值類型,賦值和傳參會復制整個數組。因此改變副本的值,不會改變本身的值。

數組聲明

var 數組變量名 [元素數量]元素類型
var a [3]int  //聲明一個長度為3的整形數組
var city = [...]string{"北京", "上海", "深圳"} //聲明一個可變長度的字符串類型數組並且初始化

數組定義必須指定長度。
讓編譯器根據初始值的個數自行推斷數組的長度...

切片

切片(Slice)是一個擁有相同類型元素的可變長度的序列。它是基於數組類型做的一層封裝。
切片是一個引用類型,它的內部結構包含地址、長度和容量。

切片聲明

var 變量名稱[]元素類型
var a []string              //聲明一個字符串切片
var b = []int{}             //聲明一個整型切片並初始化
var c = []bool{false, true} //聲明一個布爾切片並初始化

使用make()函數構造切片

make([]元素類型, 切片中元素的數量, 切片的容量)
s := make([]int, 2, 10)

切片不需要指定長度。
切片之間是不能比較,只能和nil比較!

map

map是一種無序的基於key-value的數據結構,Go語言中的map是引用類型,必須初始化才能使用。map是無序的。

map聲明

map[鍵類型]值類型
make(map[KeyType]ValueType, [cap])
其中cap表示map的容量,該參數不是必須的

三種聲明方式

//第一種聲明
var test1 map[string]string
//在使用map前,需要先make,make的作用就是給map分配數據空間
test1 = make(map[string]string, 10) 
test1["one"] = "php"
//第二種聲明
test2 := make(map[string]string)
test1["one"] = "php"
//第三種聲明
test3 := map[string]string{
    "one" : "php",
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM