陣列:
1、go 語⾔言提供了了陣列型別的資料結構。 陣列是具有相同型別的⼀一組⻓長度固定的資料序列列,這種型別可以是任意的基本資料型別或復合資料型別及⾃自定義類go內建容器器——陣列和切⽚片型。
2、陣列元素可以通過索引下標(位置)來讀取或者修改元素資料。索引從0開始,第⼀乙個元素索引為 0,第⼆二個索引為 1,以此類推。陣列的下標取值範圍是從0開始,到⻓長度減1。
3、陣列⼀一旦定義後,⼤大⼩小不不能更更改。
宣告:func main()
b := [...]int
// 遍歷陣列⽅方式 1
for i := 0; i < len(a); i++
fmt.println()
// 遍歷陣列⽅方式 2
for _, value := range b }
切片:go 陣列的⻓長度不不可改變,在特定場景中這樣的集合就不不太適⽤用,go中提 供了了⼀一種靈活,功能強悍的內建型別切⽚片("動態陣列");
與陣列相⽐比切⽚片的⻓長度是不不固定的,可以追加元素,在追加時可能使切⽚片 的容量量增⼤大。
切⽚片本身沒有任何資料,它們只是對現有陣列的引⽤用。 切⽚片與陣列相⽐比,不不需要設定⻓長度,在中不不⽤用設定值,相對來說⽐比較⾃自 由 從概念上⾯面來說slice像⼀乙個結構體,這個結構體包含了了三個元素: 指標,指向陣列中slice指定的開始位置 ⻓長度,即slice的⻓長度 最⼤大⻓長度,也就是slice開始位置到陣列的最後位置的⻓長度
func main()
map
map是go中的內建型別,它將⼀乙個值與⼀乙個鍵關聯起來。可以使⽤用相應的鍵檢索值。有資料料翻譯成地圖、對映或字典。但是⼤大多數習慣上翻譯成集合。
map 是⼀一種⽆無序的鍵值對(key-value pair )的集合。map通過 key 來快速檢索資料,key 類似於索引,指向相應的value值。
map 是⼀一種集合,所以可以像遍歷陣列或切⽚片那樣去遍歷它,不不過map
是⽆無序的,所以⽆無法決定它的展示順序,這是因為 map 是使⽤用 hash 表來實現的
var country = map[string]string
package mainimport
"fmt
"func main()
delete(a,"a
")for i,v :=range a
a["a
"]="c"
for i,v :=range a
}
list :
1、通過container/list包的new⽅方法宣告list 變數量名 := list.new()
2、通過var宣告list var 變數量名 list.list list與切⽚片和map不不同,沒有具體元素型別的限制。list中的元素可以是任 意型別。 在cpp⾥裡里⾯面,list的成員必須是同⼀乙個資料型別,但是go語⾔言中卻允許list 中插⼊入任意型別的成員。 建議使⽤用new()實現宣告list
package mainimport (
"fmt""
container/list")
func main()
//list 是值型別,不不過採⽤用 new ()⽅方法宣告的是⼀乙個指標。所以在拷⻉貝操作和
//引數傳遞時具有引⽤用型別的特徵。
func copylist()
func printlistinfo2(info
string, l *list.list)
func iteratelist2(l *list.list)
fmt.println(
"\n----------")
}
go基礎三 陣列,切片,map,list
陣列 1 go 語 言提供了 陣列型別的資料結構。陣列是具有相同型別的 一組 長度固定的資料序列 這種型別可以是任意的基本資料型別或復合資料型別及 自定義類go內建容器 陣列和切 片型。2 陣列元素可以通過索引下標 位置 來讀取或者修改元素資料。索引從0開始,第 乙個元素索引為 0,第 二個索引為 ...
go 基礎陣列和切片
陣列 1 var定義 var arr1 10 int arr1 0 1 自動推導 arr2 10 int arr2 0 2 fmt.println arr1,arr2 for k,v range arr1切片 不定長陣列,長度和容量 不定長陣列也叫切片 定義 name string fmt.prin...
go陣列 切片
陣列 陣列指標 fmt.println 陣列指標 i int var p 10 int i fmt.println p fmt.println p x,y 1,2 j int fmt.println j k 2 int l 2 int fmt.println k l 指向陣列的指標 m new 5 ...