Golang的一些基礎語法正規化
主要記錄一些Golang裡面的基本語法正規化,因為Golang這玩意實在語法和一般程式語言太特麼不一樣了...
陣列和切片的初始化
切片是Golang中關於陣列的一個概念,它很類似於SQL語言中的檢視概念,即它類似一個實體資料的映象或快照,同時一般情況下在Golang實際專案中我們也更多的會去使用切片而不是陣列本體
// 陣列的初始化 var array = [5]int// 僅宣告 array := [5]int// 另外一種寫法,也是一般函式體中用的更多的寫法 array := [5]int{1, 2, 3, 4, 5}// 定長陣列宣告且賦值 array := [...]int{1, 2, 3, 4, 5}// 不定長陣列宣告且賦值 // 切片的初始化 slice := []int{}// 只宣告,不賦值,不規定length,不規定cap slice := make([]int, 5)// 只宣告,不賦值,只規定length,不規定cap slice := make([]int, 5, 10)// 只宣告,不賦值,規定length,也規定cap slice := []int{1, 2, 3, 4, 5}// 宣告且賦值 // 切片&陣列新增元素 var s []int // 新增一個空切片 s = append(s, 0) // 這個切片會按需增長 s = append(s, 1) // 可以一次性新增多個元素 params := []int{2, 3, 4} s = append(s, params...)// 這裡類似於Python中的*符號可變引數傳入 // 二維陣列&切片的初始化方式 // 二維陣列的初始化 array := [2][3]int{{1, 2, 3}, {4, 5, 6}} for i := range array { for j := range array[i] { fmt.Printf("%v ", array[i][j]) } fmt.Println() } // 二維切片的初始化 array := make([][]int, 5) // 建立二維Slice,Gotour上的範例 func Create2DArray(dx, dy int) [][]uint8 { result := make([][]uint8, dx) for i := range result { result[i] = make([]uint8, dy) for j := range result[i] { result[i][j] = uint8((i + j) / 2) } } return result[:] }
Golang的map
Golang的map基本可以說就是雜湊表了
func main() { // 初始化map m := make(map[string]int) // 新增鍵值對 m["Answer"] = 42 fmt.Println("The value:", m["Answer"]) // 修改鍵值對 m["Answer"] = 48 fmt.Println("The value:", m["Answer"]) // 刪除鍵值對 delete(m, "Answer") fmt.Println("The value:", m["Answer"]) // 判斷鍵是否存在 v, ok := m["Answer"] fmt.Println("The value:", v, "Present?", ok) }
Golang中的系統最大值&最小值表示
maxNum := math.MaxInt32// 系統32位整型最大值 minNum := math.MinInt32// 系統32位整型最小值
Golang中的Channel(通道)初始化
channel := chan int// 單整型通道賦值,一旦傳值沒有goroutine接收立即報錯 bufferedChannel := make(chan int, 3) // 長度為3的整型通道初始化,只有在傳入次數超過3次時才會報錯