[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-golang-basics-for-beginners-2026-zh":3,"article-related-golang-basics-for-beginners-2026-zh":29,"series-tools-a08d7243-ccc3-4ac7-8e68-12d17699f934":76},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":11},"a08d7243-ccc3-4ac7-8e68-12d17699f934","golang-basics-for-beginners-2026-zh","Golang 入門實作：安裝到測試通過","\u003Cp>我想開始學 Golang，第一個可跑專案要怎麼做？\u003C\u002Fp>\u003Cp data-speakable=\"summary\">這篇帶你從安裝 Go 到建立可\u003Ca href=\"\u002Fnews\u002F4-ge-ce-shi-shi-kong-xin-hao-ai-feng-xian-zheng-zai-wai-yi-zh\">測試\u003C\u002Fa>的模組專案。\u003C\u002Fp>\u003Ch2>開始之前\u003C\u002Fh2>\u003Cul>\u003Cli>已安裝 Go 1.22+，來源請看官方 \u003Ca href=\"https:\u002F\u002Fgo.dev\u002Fdoc\u002Finstall\">Go installation docs\u003C\u002Fa>。\u003C\u002Fli>\u003Cli>已安裝編輯器，例如 VS Code，並啟用 Go 擴充功能。\u003C\u002Fli>\u003Cli>已準備終端機，作業系統可用 macOS、Linux 或 Windows。\u003C\u002Fli>\u003Cli>若要上傳程式碼，請先有 GitHub 帳號。\u003C\u002Fli>\u003Cli>會使用 cd、mkdir、go version、go test 這些基本指令。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Step 1: 檢查 Go 工具鏈\u003C\u002Fh2>\u003Cp>先確認本機已能呼叫 Go，這會\u003Ca href=\"\u002Fnews\u002Flayer-2s-cut-crypto-fees-but-bridges-decide-risk-zh\">決定\u003C\u002Fa>後面能不能編譯、執行與測試。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785976364887-czvh.png\" alt=\"Golang 入門實作：安裝到測試通過\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cpre>\u003Ccode>go version\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>你應該看到類似 \u003Ccode>go version go1.22.x\u003C\u002Fcode> 的版本字串，代表工具鏈已可用。\u003C\u002Fp>\u003Ch2>Step 2: 建立第一個 main.go\u003C\u002Fh2>\u003Cp>接著建立最小可執行檔，目標是\u003Ca href=\"\u002Fnews\u002Flayer-2-vs-layer-3-38b-tvl-trade-off-zh\">讓你\u003C\u002Fa>先看到輸出結果，而不是先碰複雜專案結構。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785976356503-hmnh.png\" alt=\"Golang 入門實作：安裝到測試通過\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cpre>\u003Ccode>package main\n\nimport \"fmt\"\n\nfunc main() {\n    fmt.Println(\"Hello, Go\")\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>執行 \u003Ccode>go run main.go\u003C\u002Fcode> 後，你應該看到 \u003Ccode>Hello, Go\u003C\u002Fcode> 出現在終端機。\u003C\u002Fp>\u003Ch2>Step 3: 初始化 Go 模組\u003C\u002Fh2>\u003Cp>下一步是把資料夾變成模組，這樣 Go 才能管理依賴與重現建置結果。\u003C\u002Fp>\u003Cpre>\u003Ccode>go mod init example.com\u002Fhello-go\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>你應該看到新產生的 \u003Ccode>go.mod\u003C\u002Fcode> 檔案，這就是模組根目錄的具名產出。\u003C\u002Fp>\u003Ch2>Step 4: 寫入 greet 函式\u003C\u002Fh2>\u003Cp>現在加入可重用函式，讓程式不只會輸出文字，也能開始表達行為。\u003C\u002Fp>\u003Cpre>\u003Ccode>package main\n\nfunc greet(name string) string {\n    if name == \"\" {\n        return \"Hello, Go\"\n    }\n    return \"Hello, \" + name\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>你應該能在同一個套件中呼叫 \u003Ccode>greet\u003C\u002Fcode>，並得到對應回傳字串。\u003C\u002Fp>\u003Ch2>Step 5: 新增測試檔 main_test.go\u003C\u002Fh2>\u003Cp>最後補上自動化測試，讓你能用指令確認函式行為沒有被改壞。\u003C\u002Fp>\u003Cpre>\u003Ccode>package main\n\nimport \"testing\"\n\nfunc TestGreet(t *testing.T) {\n    got := greet(\"Ora\")\n    want := \"Hello, Ora\"\n    if got != want {\n        t.Fatalf(\"got %q, want %q\", got, want)\n    }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>執行 \u003Ccode>go test\u003C\u002Fcode> 後，你應該看到 \u003Ccode>ok\u003C\u002Fcode> 與測試通過的結果。\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>指標\u003C\u002Fth>\u003Cth>基準／優化前\u003C\u002Fth>\u003Cth>結果／優化後\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>專案狀態\u003C\u002Ftd>\u003Ctd>只有單一 main.go\u003C\u002Ftd>\u003Ctd>main.go + go.mod + main_test.go\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>驗證方式\u003C\u002Ftd>\u003Ctd>只能手動看輸出\u003C\u002Ftd>\u003Ctd>可用 go test 自動驗證\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>可執行性\u003C\u002Ftd>\u003Ctd>僅臨時執行\u003C\u002Ftd>\u003Ctd>可 go run 與 go build\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>常見錯誤\u003C\u002Fh2>\u003Cul>\u003Cli>版本太舊：如果 \u003Ccode>go version\u003C\u002Fcode> 不是 Go 1.22+，請先更新再重試。\u003C\u002Fli>\u003Cli>不在模組目錄：如果找不到 \u003Ccode>go.mod\u003C\u002Fcode>，請切回專案根目錄再執行 \u003Ccode>go test\u003C\u002Fcode>。\u003C\u002Fli>\u003Cli>入口寫錯：如果忘了 \u003Ccode>package main\u003C\u002Fcode> 或 \u003Ccode>func main()\u003C\u002Fcode>，\u003Ccode>go run\u003C\u002Fcode> 不會成功。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>接下來可以看什麼\u003C\u002Fh2>\u003Cp>下一步建議接著學 struct、slice、interface、error handling 與 HTTP server，然後把這個小模組改成 CLI 或 \u003Ca href=\"\u002Ftag\u002Fapi\">API\u003C\u002Fa> 專案。\u003C\u002Fp>","這篇帶你完成 Go 安裝、第一支程式、模組初始化與測試。","www.igmguru.com","https:\u002F\u002Fwww.igmguru.com\u002Fblog\u002Fgolang-tutorial",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785976364887-czvh.png","tools","zh","60582080-6e78-42fc-87e5-85c2c5d1655e",[17,18,19,20,21],"Go","Go modules","go test","main.go","VS Code",[23,24,25],"先確認 Go 1.22+ 與 go version，再開始寫程式。","建立 main.go、go.mod、main_test.go，形成最小可維護專案。","用 go test 驗證函式行為，讓學習流程可重複、可檢查。",0,"2026-08-06T00:32:15.901873+00:00","2026-08-06T00:32:15.881+00:00",{"tags":30,"relatedLang":35,"relatedPosts":39},[31,33],{"name":17,"slug":32},"go",{"name":21,"slug":34},"vs-code",{"id":15,"slug":36,"title":37,"language":38},"golang-basics-for-beginners-2026-en","Golang basics for beginners in 2026","en",[40,46,52,58,64,70],{"id":41,"slug":42,"title":43,"cover_image":44,"image_url":44,"created_at":45,"category":13},"3b3c9d3f-47b5-453b-892f-241bf29d986b","harness-long-running-agent-coding-template-zh","Harness 讓長任務編程更像真開發","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1786043023387-ze69.png","2026-08-06T19:03:18.40646+00:00",{"id":47,"slug":48,"title":49,"cover_image":50,"image_url":50,"created_at":51,"category":13},"32a21aff-5a6c-407c-b9f5-fc9fe6079056","source-2-swaps-bsp-for-meshes-and-octrees-zh","Source 2 把 BSP 變成 mesh 流程","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785978186212-w6tg.png","2026-08-06T01:02:43.692336+00:00",{"id":53,"slug":54,"title":55,"cover_image":56,"image_url":56,"created_at":57,"category":13},"fea0311b-9182-48fa-af78-cb5d916970f2","run-linux-containers-on-wsl-with-wslc-zh","在 WSL 用 wslc 跑 Linux 容器","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785933170061-tafy.png","2026-08-05T12:32:27.473774+00:00",{"id":59,"slug":60,"title":61,"cover_image":62,"image_url":62,"created_at":63,"category":13},"a88cd1d5-a31e-4932-89ed-27989257620c","aliyun-free-cloud-server-first-deployment-zh","阿里云试用额度部署首台服务器","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785846785679-f8bn.png","2026-08-04T12:32:34.829107+00:00",{"id":65,"slug":66,"title":67,"cover_image":68,"image_url":68,"created_at":69,"category":13},"b8da22f6-d35f-41a1-915c-2d80abba0c25","deepseek-v4-flash-agent-cost-breakdown-zh","DeepSeek V4 Flash 讓 Agent 便宜跑","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785785620047-lrkk.png","2026-08-03T19:33:15.823908+00:00",{"id":71,"slug":72,"title":73,"cover_image":74,"image_url":74,"created_at":75,"category":13},"3fa27164-43f7-4636-8c28-eae3775d4c66","gpt-56-sol-gpu-kernel-cost-down-20-percent-zh","GPT-5.6 Sol 把 GPU 核心成本砍 20%","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785780224229-hx8i.png","2026-08-03T18:03:17.220074+00:00",[77,82,87,92,97,102,107,112,117,122],{"id":78,"slug":79,"title":80,"created_at":81},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":83,"slug":84,"title":85,"created_at":86},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":88,"slug":89,"title":90,"created_at":91},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":93,"slug":94,"title":95,"created_at":96},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":98,"slug":99,"title":100,"created_at":101},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":103,"slug":104,"title":105,"created_at":106},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":108,"slug":109,"title":110,"created_at":111},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":113,"slug":114,"title":115,"created_at":116},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":118,"slug":119,"title":120,"created_at":121},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":123,"slug":124,"title":125,"created_at":126},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]