《Go語言從入門到高階實戰》學習筆記 第三章 容器

2021-09-13 09:27:25 字數 2882 閱讀 1580

本章詳細介紹陣列、切片、對映,以及列表的增刪改查的使用方法。

1、宣告陣列

var 陣列變數名  [元素數量]t

其中元素數量必須是編譯時就確定的整型值,t可以為任意基本型別

例:

//定義乙個長度為3的string陣列,陣列名為team

var team [3]string

team[0]="hammer"

team[1]="soldier"

team[2]="mum"

fmt.println(team)

2、初始化陣列

var team = [3]string

//「...」表示讓編譯器確定陣列的大小

var team = [...]string

3、遍歷陣列

var team = [3]string

for k,v:=range team

1、宣告切片

var name t

name 表示切片型別的變數名

t表示切片型別對應的元素型別

//宣告字串切片

var str_list string

//宣告整型切片

var num_list int

//宣告乙個空切片

var num_list_empty = int{}

//輸出三個切片

fmt.println(str_list,num_list,num_list_empty)

//輸出三個切片的大小

fmt.println(len(str_list),len(num_list),len(num_list_empty))

//切片判定空的結果

fmt.println(str_list == nil)

fmt.println(num_list == nil)

fmt.println(num_list_empty == nil)

2、使用make()函式構造切片

格式make(t,size,cap)

t:切片元素型別

size:分配元素個數

cap:預分配元素數量,對size沒有影響

切片容量的擴充套件規律按照容量的2倍數擴充。

//一次新增乙個元素,還可以新增多個或整個切片

var numbers int

for i:=0;i<10 ;i++

//新增整個切片

4、複製乙個切片元素到另乙個切片

內建的copy()函式

copy(dest_slice, src_slice t)

src_slice表示源切片

dest_slice為複製的目標。

package main

import "fmt"

func main()

//指定刪除位置

index:=2

fmt.println(seq)

map使用雜湊表(hash)實現。

定義:map[key_type]value_type。

key_type為鍵型別,value_type為鍵對應的值型別。

scene:=make(map[string]int)

scene["route"]=66

fmt.println(scene["route"])

v:=scene["route2"]

fmt.println(v)

//另一種方法

m:=map[string]string

2、map遍歷

scene:=make(map[string]int)

scene["route"]=66

scene["brazil"]=4

scene["china"]=960

for k,v:= range scene

3、刪除鍵值對

delete(map,鍵)

4、併發環境中使用的map--sync.map

package main

import (

"fmt"

"sync"

)func main() ) bool )

}

go語言中列表使用container/list包來實現,內部實現原理是雙鏈表。列表能夠高效地進行任意位置的元素插入和刪除操作。

1、初始化列表

new和宣告兩種方法。

new的方法:    變數名:=list.new()

宣告的方法:    var 變數名 list.list

2、列表中插入元素

l:=list.new()

l.pushback("fist")

l.pushfront(66)

3、列表中刪除元素

l:=list.new()

//尾部新增元素

l.pushback("cannon")

//首部新增元素

l.pushfront(67)

//尾部新增後儲存元素控制代碼

element:=l.pushback("fist")

//在fist之後新增high

l.insertafter("high",element)

//在fist之前新增noon

l.insertbefore("noon",element)

l.remove(element)

4、遍歷列表

//遍歷list

for i:=l.front();i!=nil ;i=i.next()

Go語言從入門到高階

3.條件和迴圈 4.函式 5.陣列和指標 6.結構體和切片 7.集合 8.併發 9.通道 練習package main import fmt func main package main var a 菜鳥教程 var b string runoob.com var c bool var x,y in...

Golang語言學習從入門到實戰 介面

inte ce型別可以定義一組方法,但是這些不需要實現。並且inte ce不能包含任何變數。當某個自定義型別要使用的時候,在根據具體情況把這些方法寫出來。讓camera實現usb介面的方法 func c camera start func c camera stop type computer st...

Flutter從入門到高階實戰攜程網App 彙總貼

賈鵬輝的技術部落格官網 包管理的 掘金上放出來的 1 1 課程導學 1 2 專案需求分析,技術分解.2 1 本章作業 2 2 開發系統與工具選擇 2 3 flutter開發環境與ios開發環境設定 mac 2 4 android開發環境設定與flutter外掛程式安裝 mac 2 5 flutter...