Golang學習參考: Golang是順序執行語言,函數內順序不同,執行的結果不同!golang
0)Golang入門這一頁就夠了:https://tour.go-zh.org/concurrency/11 (各類權威資料彙總)編程
0.1)Go編程語言規範: https://go-zh.org/ref/spec#Operands (數據類型,函數,運算符,邏輯關係等詳解)c#
0.2)Golang的25個關鍵字解析:https://juejin.im/post/5b43674d5188251b176a4c8b數組
0.3)除了關鍵字還有,內建函數例如make,append等都是不要定義具體函數即可以使用的方法。builtin 函數詳解:http://learning-golang.lofter.com/post/c9bfc_1a6a87 和:http://golang.org/pkg/builtin/ 其中包含了:/* 內置類型 、 引用類型:(指針類型) 、內置函數、內置接口error:app
type error interface { Error() String} //只要實現了Error()函數,返回值爲String的都實現了err接口編程語言
1)語法彙總:https://blog.csdn.net/cabing2005/article/details/60585961 (CSDN) and https://www.jianshu.com/p/b368420cb994 (簡書)函數
2)語法實例與講解:https://www.jb51.net/article/128964.htm (原理清楚便於實踐)post
3)Go代碼網頁運行:https://www.jdoodle.com/execute-go-online (其餘語言也能夠)學習
4)Golang基礎學習網頁版:https://tour.go-zh.org/ (專門學習網站,右上角選擇對應章節)網站
Golang運行環境與系統相關:
1)查看golang運行環境:go env 2) 運行go程序:go run ***.go ( ***.go爲go文件,前提爲go環境搭建完畢)
3)執行godoc -http=:portID 再執行:localhost: portID 查看本地文檔
4)按照約定,包名與導入路徑的最後一個元素一致。例如,"math/rand" 包中的源碼均以 package rand 語句開始。
5)全局變量是容許聲明但不使用,局部變量不能從新聲明並且聲明瞭必需要使用
6)導入能夠import ( "fmt") 也能夠: import "math" 效果相同
7)函數外的每一個語句都必須以關鍵字開始(var, func 等等),所以 := 結構不能在函數外使用。
Go語法相關
1)Go 的 if 語句與 for 循環相似,表達式外無需小括號 ( ) ,而大括號 { } 則是必須的。
2)defer 語句會將函數推遲到外層函數返回以後執行。推遲調用的函數其參數會當即求值,但直到外層函數返回前該函數都不會被調用。關於defer 的詳解。
3)Go 擁有指針。指針保存了值的內存地址。類型 *T
是指向 T
類型值的指針。其零值爲 nil
。&
操做符會生成一個指向其操做數的指針。*
操做符表示指針指向的底層值。
4)一個結構體(struct
)就是一個字段的集合。結構體字段使用點號來訪問。
5)切片並不存儲任何數據,它只是描述了底層數組中的一段。更改切片的元素會修改其底層數組中對應的元素。(切片的長度就是它所包含的元素個數。切片的容量是從它的第一個元素開始數,到其底層數組元素末尾的個數,不管末尾切片數字多少)(nil 切片的長度和容量爲 0 且沒有底層數組。)切片可包含任何類型,甚至包括其它的切片。 內置函數 func make([]T, len, cap) []T
能夠用來建立切片,該函數接受長度和容量做爲參數,返回切片。容量是可選的,默認與長度相同。使用 make
函數將會建立一個數組並返回它的切片。 Golang 切片詳解: https://blog.csdn.net/u011304970/article/details/74938457
6)