golang入門例項分析 四

2021-10-06 09:32:12 字數 1791 閱讀 5686

func main() 

s1 := arr[:]

s2 := arr[1:]

s3 := arr[:3]

s4 := arr[1:3]

s5 := make(int, 3, 5)

printslice(s1) //5 5 [1 2 3 4 5]

printslice(s2) //4 4 [2 3 4 5]

printslice(s3) //3 5 [1 2 3]

printslice(s4) //2 4 [2 3]

printslice(s5) //3 5 [0 0 0]

}func printslice(s int)

分析:若arr[i:j],len(s)的值就是j-i,cap(s)的值就是len(arr)-i;若arr[:j],len(s)的值就是j-1,cap(s)的值就是len(arr);若arr[i:],len(s)的值就是len(arr)-i,cap(s)的值就是len(arr)-i;若arr[:],len(s)的值就是len(arr),cap(s)的值就是len(arr)

func main() }}

func printslice(s int)

func main()  初始化

var countmap map[string]string = make(map[string]string)

countmap["france"] = "法國"

countmap["china"] = "中國"

countmap["japan"] = "日本"

for country := range countmap

var a string

var ok bool

a, ok = countmap["china"]

fmt.println(a, ok)

delete(countmap, "china")

a, ok = countmap["china"]

fmt.println(a, ok)

}

分析:range遍歷map集合,delete根據key刪除value值

func main()
type fruit inte***ce 

name string

} return a.name

} a.name = name

}func main()

分析:如果想要通過介面方法修改屬性,需要在傳入指標的結構體才行

func main()
分析:panic在任何地方都可以執行,用於丟擲異常,若異常**獲,那後續的**就可以執行;若異常不**獲,那後續的**就不執行

func f2() 

}()fmt.println("f2")

panic("發生異常")

}func main()

分析:recover只能在defer語句中使用, 直接呼叫recover是無效的.recover()方法有乙個返回值,如果recover()捕獲到panic,則返回panic物件,否則返回nil

func f() ()

defer func() ()

}func main()

分析:defer執行的順序是倒序的,可以理解為先存入棧中,等到出現panic異常或者執行到函式結尾時,從棧頂彈出,且defer只有寫在panic的前面才能捕獲異常

golang入門例項分析 三

func main for i 0 i 5 i func main for i 0 i 2 i fmt.println func main bb b fmt.println b c int cc c fmt.println c func bb b 5 int func cc c int 分析 陣列作...

golang入門學習

全文來自how to write go code 自己跟著寫了一遍,並記錄了其中的過程。go官方文件 go的github位址 go命令文件位址 一,建立go.mod 寫完後,安裝構建go語言 go install example.com user hello構建的程式在 home go bin 這個...

40個flutter入門例項詳解 四

17.表單 class formtestroute extends statefulwidget class formtestroutestate extends state textformfield controller pwdcontroller,decoration inputdecorat...