跳到內容

建構標籤

Go 的建構標籤(也稱為建構約束)是告訴 Go 編譯器在編譯期間包含或排除檔案的指令。Gin 使用建構標籤讓你可以在編譯時替換內部實作或停用可選功能,而不需要更改任何應用程式程式碼。

這在幾種情境中很有用:

  • 效能最佳化 — 用更快的第三方編碼器取代預設的 encoding/json 套件,加速 API 中的 JSON 序列化。
  • 縮小二進位檔大小 — 移除你不使用的功能,如 MsgPack 渲染,以產生更小的編譯二進位檔。
  • 部署調整 — 為不同環境選擇不同的編碼器(例如,高吞吐量的正式環境建構 vs. 標準的開發建構)。

建構標籤透過 -tags 旗標傳遞給 Go 工具鏈:

Terminal window
go build -tags=<tag_name> .

你可以用逗號分隔來組合多個標籤:

Terminal window
go build -tags=nomsgpack,go_json .

可用的建構標籤

標籤效果
go_jsonencoding/json 替換為 go-json
jsoniterencoding/json 替換為 jsoniter
sonic avxencoding/json 替換為 sonic(需要 AVX CPU 指令)
nomsgpack停用 MsgPack 渲染支援

本節內容

以下頁面詳細介紹了每個建構標籤: