Go Go 已經 15 歲了,由於先前的筆記累積了很多歷史的進程,再加上近幾年工作關係,對 Go 的體驗有新的想法。因此重新整理筆記,移除過時汰除的內容,並且新增近幾年新的經驗。
新的筆記會由目前 1.23 版本開始,會與之前的版本有所不同;因此建議一同升版至 1.23 版本。如果想了解之前 Go 功能的變化,可以參考先前的筆記。
- Go: 1.23.3
- Apple M1 Pro
- 開發工具: VSCode
- *Hello World
- IDE 環境
- Go 專案管理
- Hello World
- 跨平台編譯
- Go 語言特性與 Rust, Scala 比較
- 資料型別與流程控制
- Primitive Type and Zero Value
- Control Flow
- Function
- 進階資料型別與介面
- Array and Slice
- String and Rune
- Map
- Type, Alias and Enum
- Struct and Method
- Pointer and Interface
- Struct and Pointer
- Call by Value in Fuction and Method
- Interface
- Type Assertion
- Type Switch
- Package and OOP
- Package and Encapsulation
- Anonymous Field
- Fake Inheritance
- Defer and Error Handling
- Error
- Panic and Recover
- Defer
- Testing
- Test
- Benchmark
- Example
- Goroutine, WaitGroup and Mutex
- Channel and Select
- Context
- JSON and Struct Tag
- Command Line Tool: Cobra
- Configuration: Viper and TOML
- Database and MySQL
- Text/Hmtl Template
- Embed
- Gorilla Web Tookit and WebSocket
- Echo Web Framework
- RESTful Service with Echo
- GoCron
- GRPC
- Build Constraints
- Generic
- Reflection
- CGO
- WebAssembly (不建議使用)