通用範式理論(OOP、FP、泛型)請參考 程式設計範式。本章聚焦 Go 在這些範式下的具體實踐。

Go 是靜態型別的編譯式語言,由 Google 的 Rob Pike 與 Ken Thompson 等人設計,結合系統語言的效能與現代語言的開發效率,擅長高併發網路服務與分散式系統。

Go 的設計取捨#

讀 Go 之前先理解它在哪幾個地方刻意「不像主流語言」,會省下很多疑惑:

  • 沒有繼承:用介面 + 結構體嵌入做組合。讀 02-data-structures/03-struct-and-method02-data-structures/04-interface
  • 沒有泛型容器(早期)/ 顯式 generics(Go 1.18+):標準函式庫仍偏好以介面 + interface{} 解決
  • 沒有例外:用 error 回傳值 + panic/recover 補位
  • 併發是語言層級的一等公民:Goroutine + Channel 直接寫進語法,不靠標準函式庫

學習順序建議:01-go-basics ➡️ 02-data-structures ➡️ 03-concurrency ➡️ 其餘按需。03-concurrency 是 Go 最有特色的部分,先打好前兩章基礎再上。