Go Programming Language Fundamentals¶
Go (also known as Golang) is a statically typed, compiled programming language designed at Google^[300-閱讀筆記__筆記法.md]. Its development was initiated to address criticisms of other languages while maintaining their useful characteristics, resulting in a language that is productive, readable, and efficient^[300-閱讀筆記__筆記法.md].
Design Philosophy and Syntax¶
Go's design emphasizes simplicity and clarity. Its syntax is derived from the C family but is significantly streamlined to reduce verbosity^[300-閱讀筆記__筆記法.md]. Notably, Go removes the requirement for parentheses around conditions in control structures (such as if, for, switch) and eliminates the need for explicit semicolons at the end of statements^[300-閱讀筆記__筆記法.md].
Modularity¶
Code in Go is organized into packages, which provide a mechanism for encapsulation and reuse^[300-閱讀筆記__筆記法.md]. The Go standard library is a comprehensive collection of these packages, often cited by developers for its practicality and utility^[300-閱讀筆記__筆記法.md].
Concurrency¶
One of Go's most distinctive features is its approach to concurrency, which is built directly into the language rather than being handled by an external library^[300-閱讀筆記__筆記法.md].
- Goroutines: Go allows for the lightweight execution of concurrent operations through functions called goroutines^[300-閱讀筆記__筆記法.md]. These are managed by the Go runtime.
- Channels: To facilitate communication between concurrent processes, Go provides channels^[300-閱讀筆記__筆記法.md]. The philosophy underlying these tools is often summarized by the concept: "Do not communicate by sharing memory; instead, share memory by communicating."^[300-閱讀筆記__筆記法.md]
Related Concepts¶
- [[Concurrency vs Parallelism]]
- [[Static Typing]]
- [[Memory Management]]
Sources¶
300-閱讀筆記__筆記法.md