Go | 菜鳥教學
💬前言
在學習程式語言的路上,總有幾個關鍵時刻促使我們選擇深入某個特定語言,而對我而言,Go(或 Golang)就是這樣一個值得投入時間與精力的目標。
首先,Go 的熱度讓人無法忽視。根據 2024 年 12 月的 TIOBE 程式語言排行榜,Go 為第七名,足以證明它在開發者社群中的受歡迎程度。其次,許多公司已經將 Go 應用於實際的開發環境,包括我目前正有幾個重要專案使用 Go 作為主力語言,這也讓我有了更多接觸這門語言的機會。
更重要的是,Go 是一個完全開源的程式語言,它簡潔、現代,並專注於實際應用,這樣的特性對開發者來說無疑是友好的。但坦白說,雖然與 Go 已有過幾次“擦肩而過”的經驗,我卻從未真正認真熟習它的語法與標準函式庫。這一次,我決定將學習 Go 提上日程,補足自己的知識短板,同時探索它的強大之處。
這篇部落格文章記錄的,正是我學習 Go 的點滴,無論對初學者還是想再次了解 Go 的開發者,希望這會是一個有用的參考。
⚠️免責聲明:
- 本部落格的內容僅供參考,旨在分享個人對 Golang 的學習、經驗與見解。文章中的技術、範例與建議均基於作者的理解與實踐,並參考了相關文獻與公開資源。然而,這些內容可能存在不完善之處,亦可能隨技術發展而過時。
- 讀者在應用文中資訊或範例時,應根據實際需求與官方文件進行判斷與調整。本部落格對因使用內容所引發的任何問題或損失不承擔責任。
- 若發現內容有錯誤或不準確之處,歡迎提出建議,我將深表感謝並視情況修正。。
學習的過程難免會有些枯燥,特別是剛開始接觸語法與基本概念時。但我會盡量在這個系列中加入有趣的例子與易懂的講解,讓整個過程不僅僅是知識的堆疊,更像一次輕鬆的探索旅程。
圖片來源:Gophers (地鼠造型的原創者為 Renee French)
✅️表示文章內容已經撰寫完成。
🏗️表示文章仍在撰寫或編輯中,可能還在進行內容的修訂與調整。
🔐表示文章不對外開放。
📝學習章結
- 簡單介紹
- 基本型別(types)
- ✅初識變數:基本型別的認識與宣告
- ✅規規矩矩:命名規則與初始化規則
- ✅忽略變數:空白標識符的最佳實踐
- ✅變數範圍:初步了解變數作用範圍
- ✅數值型別:初步了解「整數」型別
- ✅數值型別:初步了解「浮點」型別
- ✅數值型別:初步了解「複數」型別
- ✅數值計算:基本數學運算計算函式
- 🔐裝逼繪圖:浮點數運算繪製曲面圖
- 🔐裝逼繪圖:複數運算繪製分形圖形
- ✅布林型別:初步了解「布林」型別
- ✅文字型別:初步了解「字元」型別
- ✅字串型別:初步了解「字串」型別
- 🔐字串處理:初步理解字元集與編碼
- ✅引用型別:初步了解「指標」型別
- ✅引用型別:初步了解「函式」型別
- ✅不動如山:「常量」的介紹與使用
- ✅簡單易懂:「列舉」的模擬與實踐
- ✅涅槃重生:「別名」的介紹與應用
- 🔐別具匠心:變數逃逸分析簡單介紹
- ✅生命循環:變數「生命周期」研究
- ✅揭開面紗:簡單介紹關鍵字標識符
- ✅註解世界:掌握註解的使用與實踐
- 資料結構(data structure)
- 控制流程(control flow)
- 函式(function )
- 結構(struct)
- 介面(interface)
- ✅啟蒙之始:初步了解介面是什麼?
- ✅異曲同工:介面與其他語言的差異
- ✅無所不包:空介面特性與應用場景
- ✅指鹿為馬:空介面與空指標的區別
- ✅見微知著:型別斷言的語法和應用
- ✅萬象更新:介面如何幫助實現多型
- 🏗️[立竿見影:定義介面並且結構實現]
- 🏗️[融會貫通:關於結構多重介面實現]
- 🏗️[層層相扣:什麼是介面巢狀介面?]
- 🏗️[推陳出新:關於介面嵌入方法覆寫]
- 🏗️[繞梁三日:介面反向設計繼承模擬]
- 🏗️[指引迷津:介面如何幫助解耦程式]
- 🏗️[源遠流長:輸入與輸出資料源介面]
- 🏗️[言簡意賅:簡單介紹字串輸出介面]
- 🏗️[防微杜漸:錯誤介面以及錯誤處理]
- 🏗️[針鋒相對:自訂錯誤實現錯誤介面]
- 🏗️[巧妙布局:介面在設計模式中應用]
- 🏗️[實事求是:使用介面進行單元測試]
- 🏗️[應用範例:使用介面動物行為模擬]
- 🏗️[應用範例:使用介面來實作計算機]
- 🏗️[應用範例:使用介面實作記錄功能]
- 🏗️[應用範例:最佳實踐以及常見錯誤]
- …
- 套件(package)
- …
- 協程(goroutine)
- …
- 反射(reflection)
- …
- 檔案操作(I/O)
- …
- 建置(build)
- …
👌結語
這次的學習旅程不僅僅是為了熟悉 Golang 的語法與實踐應用,更是一次自我提升的挑戰。雖然計畫可能隨著深入學習而有所變化,但每一步都是邁向更好的自己。希望這系列文章能為我的學習提供系統性的整理,同時為其他想學習 Golang 的朋友帶來啟發與幫助。
進步總是從累積開始。而學習的樂趣,也許就在於這份持續探索與不斷突破的過程中。