go基礎三 陣列,切片,map,list

2021-10-02 13:41:41 字數 1899 閱讀 2087

陣列:

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 main

import

"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 main

import (

"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 ...