golang 基礎知識點梳理

寫過一段時間 golang 後,業務開發應該遊刃有餘了,可以檢查下這些基本的語法你都掌握了麼?25 個關鍵字、37 個預定義標識符,41 個標準庫是不是都很熟悉了? 獨特的 interface、go、select 語法你都會用了麼?

基礎知識

正如大部分編程語言,瞭解基本的數據結構、關鍵字、語法、包引用、錯誤處理等,就可以進行簡單的業務開發了. 本文主要梳理了 golang 這些基本的知識點,可以對照看是否都瞭解它們的用法了.

一些基本的數據結構如 int、bool、string、byte等,語法 if、else、for、break、func、return 、struct 等與其它語言類似,有編程基礎很快能夠掌握.

此外,也有許多寫法上較為特別的概念需要注意:

  • 抽象接口 interface 的使用
  • 引用類型 slicemapchannel 及其底層原理
  • 協程併發 go、select
  • 錯誤處理 error、nil、defer、panic
  • 內置函數 append
    、copy
  • 標準庫 io、reflect
  • 等等

25個關鍵字

golang 有 25 個常用關鍵字,它們是語法的關鍵. 是不允許被定義為變量名的. 根據它們的作用,我簡單分了個類. 其中黑體的關鍵字,是值得更進一步探究的,它們是 golang 中比較特別的特性. 25 個關鍵字如下:

  • 基本: var、const、package、import、map
  • 方法: func、return、interface、struct、type
  • 併發: goselectchan
  • 結構
    : if、else、switch、case、default、fallthrough、for、break、continue、goto、range
  • 其它: defer

預定義

除了構成語法的關鍵字,還有一些 golang 提供的內建常量、類型及函數. 如下共 37 個,其中常量 4 個,類型 20 個,函數 13 個. 黑體的部分很常用,是 golang 獨特的部分,也是值得進一步探究的.

內建常量

  • true、false、iota、nil

內建類型

  • int、int8、int16、int32、int64
  • uint、uint8、uint16、uint32、uint64、uintprt
  • float32、float64、complex64、complex128
  • bool、byte、rune、string、error

內置函數

  • make、len、cap、new、appendcopy、close、delete
  • complex、real、imag
  • panicrecover

內置 41 個標準庫

庫即可以直接引入代碼的 package,標準庫即 golang 官方提供的庫. 它們都是十分常用的 package. 本文將 41 個標準庫簡單分為 6 個類別.

包括基本的數據結構及算法處理如 math、hash、container 等,輸入輸出如 io、bufio 等,網絡庫 net、html 等,go 語言自身庫如 reflect、errors 等,操作系統庫如 sync、time、syscall 等,其它工具庫如 flag、database 等.

這 41 個官方標準庫不僅是最常用的基本庫,提供了許多優秀的基礎能力. 也是最優秀的 golang 源碼,是十分值得進一步探究的. 詳細的 41 個標準庫如下圖所示.

golang 基礎知識點梳理

41 個標準庫

問題思考

乍一看,上面那些東西都很熟悉,這些關鍵字、預定義標識符、標準庫都是經常出現在自己的代碼中的. 那麼下面這些問題你能回答麼?

  1. golang 的引用類型有哪幾個?什麼是引用類型?
  2. append 操作該如何使用?賦值時需要注意什麼?
  3. golang 的切片 slice 是如何擴容的?
  4. select 有什麼作用?它是如何實現的?
  5. 如何改變 map 中的 value ?如果存儲的是一個結構體對象,如何改變這個對象的成員變量值?map 是如何實現的?它如何擴容?
  6. len() 函數和 cap() 函數有什麼區別?


分享到:


相關文章: