Go 語言第一章(入門)
Go(又稱 Golang)是 **Google** 在 2007 年推出、2009 年正式開源的靜態編譯型程式語言,由羅伯特・派克(Rob Pike)、肯・湯普森(Ken Thompson,C 語言、Unix 之父)、羅伯特・葛瑞厄姆三人主導開發。
我們帶入神話故事來理解 Go 語言:
- Unix —— 鴻鈞老祖(定系統天道規則)
- C 語言 —— 造化玉碟(鴻鈞核心基礎功法,萬物底層根基)
- BSD / System V / Linux —— 三清三大聖人(鴻鈞三大弟子,各自演化道統)
- C++ —— 太上老君(在基礎功法上煉化靈寶,功能最全,複雜大型基建專用)
- Go —— 鴻鈞後人新創簡化功法(Ken Thompson 是 Unix/C 元老,簡化 C,適配雲洪荒)
- Java —— 西方接引道人(套一層虛擬機結界,跨天地通用,但厚重笨重)
- Python —— 散修懶人功法(上手簡單,封裝底層,不用苦修基礎內功)
- Windows —— 域外魔神,自成一方小世界,早年排斥鴻鈞道統

Go 語言特點
Go 的設計哲學是「少即是多」—— 砍掉冗餘特性,專注工程效率與可維護性。以下是它最核心的幾大特點:
- 原生並發:基於 goroutine 與 channel 實現 CSP 並發模型,協程初始棧僅數 KB,遠比傳統 OS 執行緒輕量,由執行時統一調度,天然適合高並發服務
- 自動記憶體管理:內建 GC 垃圾回收器,無需像 C/C++ 那樣手動申請與釋放記憶體,在開發效率與執行安全之間取得平衡
- 靜態編譯:編譯產物為單一可執行檔,無外部執行時依賴,拷貝到目標機器即可執行,部署極其簡單
- 跨平台編譯:內建交叉編譯能力,在 macOS 上一條
go build 指令即可產出 Linux、Windows 等平台的二進位檔案
- 語法簡潔:僅 25 個關鍵字,用組合取代繼承,拒絕過度設計,程式碼易讀易寫,學習曲線平緩
- 編譯速度極快:大型專案完整編譯通常在秒級完成,修改程式碼後幾乎即編即跑,開發體驗流暢
- 標準函式庫強大:
net/http、encoding/json、context 等核心函式庫久經生產驗證,網路、序列化、並發控制等常見需求開箱即用
- 工具鏈一體化:
go mod 管理依賴、go test 執行測試、go fmt 統一格式,從編碼到發布全流程有官方工具支撐
如何安裝 Go 語言
1. 下載安裝包
Go 語言的安裝包可以在 Go 語言官網 下載。

選擇你所對應的作業系統,點擊下載安裝包。
2. 安裝 Go 語言
一路下一步,直到安裝完成。

3. 驗證安裝
在終端機輸入 go version 指令,如果顯示 Go 語言的版本資訊,則說明安裝成功。(目前主包用的是 1.26.4 版本)

4. 編輯器下載
推薦使用 VS Code 編輯器,因為 Go 語言官方推薦使用 VS Code 作為開發工具。下載完成一路下一步,直到安裝完成。
5. 配置 Go 語言外掛程式
在 VS Code 中安裝 Go 語言外掛程式,安裝完成後,VS Code 會自動配置 Go 語言環境。

為什麼要出這個教程以及為什麼要學習 Go 語言
為什麼要寫這個教程
Go 的中文資料不少,但品質參差不齊——有的太淺,有的直接翻譯官方文件,缺少一條清晰的學習路徑。寫這個系列,是希望給零基礎或從其他語言轉過來的同學一份系統化、能跟著動手的入門指南,少走彎路。
為什麼要學 Go
- 就業市場需求大:字節、騰訊、美團、百度等大廠的後端、基礎架構、中介軟體職位大量招聘 Go 開發;雲原生、微服務方向幾乎繞不開它
- 薪資有競爭力:具備 Go + 雲原生(K8s、Docker)技能的工程師,在市場上通常比純 CRUD 後端更有議價空間
- 入門門檻相對友善:語法簡潔、關鍵字少,有 Python、Java 或前端 JS 基礎的同學,通常一兩週就能寫出可執行的服務
- 前端轉全端的務實選擇:純前端職缺競爭加劇,掌握 Go 後可以獨立完成後端 API、中介層邏輯,向全端或平台工程方向發展
- 雲原生時代的「官方語言」:Docker、Kubernetes、Prometheus、Etcd 等核心基礎設施均用 Go 編寫,學 Go 有助於真正理解這些工具的底層原理
- 區塊鏈 / Web3 的主流技術棧:以太坊 Go 客戶端 Geth、Hyperledger Fabric 等均基於 Go,相關職位普遍將其列為硬性要求
- 適用場景廣:微服務 API、命令列工具、爬蟲、訊息佇列、閘道器、DevOps 腳本——從業務到基建都能覆蓋
- 效能與開發效率的平衡:編譯快、部署簡單、並發模型清晰,在需要高並發但又不想陷入 C++ 複雜度的場景裡,Go 是性價比很高的選擇
如果你屬於以下任一情況,都很適合從這裡開始:
- 想轉行後端或全端,不知道從哪下手
- 做維運 / 雲端運算,想讀懂 K8s 生態的程式碼
- 在校或轉行,希望掌握一門「好找工作」的實用語言
- 已經會一點程式設計,想系統補全 Go 的知識體系
Hello World
我們可以新建一個 hello.go 檔案,然後輸入以下程式碼:
go 代碼解讀複製代碼package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
然後我們打開終端機,輸入 go run hello.go 指令,執行程式。
bash 代碼解讀複製代碼go run hello.go
輸出> Hello, World!
package main
go 代碼解讀複製代碼package main
- package main = 告訴 Go 編譯器,這是程式的入口套件(可執行程式)。
- Go 官方規定,程式入口必須叫 main,名字是固定的,不能修改。
例如我改成 aaa 會報錯:
go 代碼解讀複製代碼package aaa
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
bash 代碼解讀複製代碼command-line-arguments is not a main package # 錯誤提示
import "fmt"
匯入 Go 標準函式庫中的 fmt 套件,讓目前檔案可以使用它提供的功能。
- fmt:Go 官方提供的格式化輸入輸出套件。
- Println():fmt 套件中的一個函式,用來列印內容並換行。
func main()
- func main():定義一個名為 main 的函式,這是 Go 程式的入口函式。
- {}:main 函式的程式碼區塊,必須有。
- fmt.Println("Hello, World!"):呼叫 fmt 套件中的 Println 函式,列印 "Hello, World!" 字串。
作業
- 修改
hello.go 檔案,將 "Hello, World!" 改成 "Hello, Go!"。
- 執行程式,觀察輸出結果。
原文出處:https://juejin.cn/post/7657567333606506505