1. 程式人生 > >Go語言之旅[三]

Go語言之旅[三]

Go語言之旅[三] 作者:家輝,日期:2018-03-04 CSDN部落格: http://blog.csdn.net/gobitan 說明:這是本系列的第三部分。 參考: http://blog.csdn.net/gobitan/article/details/79440965 Go語言之旅[一]            http://blog.csdn.net/gobitan/article/details/79440994 Go語言之旅[二]
指標 Go與C語言一樣,擁有指標。指標儲存了值的記憶體地址。 型別*T是指向T型別值的指標。其零值為nil。定義如下: var p *int 與 C 不同,Go 沒有指標運算。
結構體
與C語言類似,除了定義方式不同之外,其他都與C相同,如訪問方式 等。

陣列 型別 [n]T 表示擁有 n 個 T 型別的值的陣列。如: var a [10]int
切片 陣列支援切片,這點類似Python語言。切片通過兩個下標來界定,即一個上界和一個下界,二者以冒號分隔: a[low : high] 它會選擇一個半開區間,包括第一個元素,但排除最後一個元素。如:a[1:4]表示a 中下標從 1 到 3 的元素。 切片只是一種對陣列的引用。切片下界的預設值為 0 ,上界則是該切片的長度。
用make建立切片
切片可以用內建函式 make 來建立,這也是你建立動態陣列的方式。如: a := make([]int, 5)  // len(a)=5 切片可包含任何型別,甚至包括其它的切片。    
range for 迴圈的 range 形式可遍歷切片或對映。如: var pow = []int{1, 2, 4, 8, 16, 32, 64, 128}
func main() {     for i, v := range pow {         fmt.Printf("%d = %d\n", i, v)     } } 可以將下標或值賦予 _ 來忽略它。
對映map
type Vertex struct {     Lat, Long float64 }
var m = map[string]Vertex{     "Bell Labs": {40.68433, -74.39967},     "Google":    {37.42202, -122.08408}, }
函式值 類似C語言。
函式閉包(closures) ?? 暫時沒弄懂,等用到再細看。
last update: 2018-03-04
參考資料: [1]  https://tour.go-zh.org/moretypes/1