通用範式理論(OOP、FP、泛型)請參考 程式設計範式。本章聚焦 Go 在這些範式下的具體實踐。
Go 是靜態型別的編譯式語言,由 Google 的 Rob Pike 與 Ken Thompson 等人設計,結合系統語言的效能與現代語言的開發效率,擅長高併發網路服務與分散式系統。
Go 的設計取捨#
讀 Go 之前先理解它在哪幾個地方刻意「不像主流語言」,會省下很多疑惑:
- 沒有繼承:用介面 + 結構體嵌入做組合。讀 02-data-structures/03-struct-and-method 與 02-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 最有特色的部分,先打好前兩章基礎再上。