《A Tour of Go》學習筆記(二)

文章《A Tour of Go》是官方文檔,地址是https://tour.golang.org/welcome/1
該文檔在官方《Go Documentation》系列文檔中的位置如圖所示。

Go Documentation

之前記錄了《A Tour of Go》學習筆記(一)

以下是我的學習筆記的第二部分。

More types: structs, slices, and maps

  1. Go有指針,零值是nil,有&*操作符,但沒有指針算術
  2. struct是一些字段/屬性(field集合,語法以type開頭:type Vertex struct
  3. structfield用點號(.)訪問
  4. 通過指針訪問也只需使用點號(.),不用加星號(*),p.X即可
  5. struct的屬性可以用Name:語法初始化,順序無關緊要,不關心的屬性也可以缺省
  6. 數組的長度是數組結構的一部分,因此數組不能被resize;數組可以直接輸出;
  7. 切片slice是動態大小的,可以從數組創建(前閉后開區間)
  8. slice不存儲數據,只是指向了底層數據的某個區間,因此一個切片更改后,真實數據會被更改,其他指向同一數組區間的slice就可能看到改動
  9. 字面常量切片先構建一個數組,然后指向它構建切片(可能需要去看內存模型The Go Memory Model);現場定義的struct切片初始化
  10. slice的起始和結束位置都是可以省略的,默認值是數據的開始位置(0)和結束位置(length)
  11. slice有長度(length)和容量(capacity),length是切片擁有的元素個數,capacity是從切片開始位置到數據結束位置的元素個數,可以分別用len(s)cap(s)獲得
  12. slice的零值是nilnil slice長度為0,容量為0,沒有實質分配內存
  13. slice可以用make創建,可以指定lengthcapacity
  14. slice可以指向任何類型,包括slice
  15. append添加元素,如果超長了,會重新分配內存,并指向新的地址(略坑??啊),詳細參考Go Slices: usage and internals
  16. range返回位置和元素的副本(copy),用在for循環里遍歷slice或者map
  17. 使用下劃線扔掉不關心的變量,比如循環中range返回的index或者 value
  18. 關于slice的一個小練習
    slice練習代碼

    生成的圖像如下:
    slice練習輸出圖像
  19. map的零值是nil,一個nil的map沒有key,也不能添加;可以用make函數構造一個map,它會被初始化并可用
  20. map literals(官方翻譯是map文法)跟struct類似,不過需要有鍵值
  21. 頂級類型只有類型名時,可以省略

未完待續。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 標簽(空格分隔): 編程 Go官方文檔 Using the tour 1.1 Hello, 世界 Welcome...
    uangianlap閱讀 1,523評論 0 5
  • 出處---Go編程語言 歡迎來到 Go 編程語言指南。本指南涵蓋了該語言的大部分重要特性 Go 語言的交互式簡介,...
    Tuberose閱讀 18,479評論 1 46
  • fmt格式化字符串 格式:%[旗標][寬度][.精度][arg索引]動詞旗標有以下幾種:+: 對于數值類型總是輸出...
    皮皮v閱讀 1,117評論 0 3
  • Hello World這是開發的一個開發魔咒,幾乎所有人都是從這開始的,今天我也從魔咒開始先打印一份Hello W...
    cocoaAhda閱讀 1,461評論 0 3
  • 結婚有兩年了,婆家和娘家,老公和孩子,沒有一個能扔下不管的,心里累,累的喘不上氣,我想哭,誰理解我,誰理解我,求大...
    任sir獨有Loveing_閱讀 182評論 0 0