Go 语言(又称 Golang)是一门由 Google 开发的现代编程语言,以其简单、高效和并发支持而受到开发者欢迎。本篇笔记将介绍 Go 语言的基本概念、语法和特性,同时附上一些示例代码以帮助您入门。
1. 语言特点: Go 语言以其独特的特点和优势脱颖而出:
- 并发支持: Go 语言的 Goroutine 和 Channel 提供了强大的并发编程能力,让开发者能够轻松地处理并发任务。
- 性能优越: Go 语言的编译速度快,生成的可执行文件性能出色,使其适用于高性能应用。
- 简洁直观: Go 语言的语法设计简洁直观,减少了冗余代码,增强了代码可读性。
- 自动垃圾回收: Go 语言内置垃圾回收器,使内存管理更加轻松。
- 跨平台支持: Go 语言可以轻松地在多个平台上进行开发和部署。
2. 基本语法:
-
包和导入: Go 程序由多个包组成,每个文件开头用
package声明所属包,通过import导入其他包。package main import "fmt" -
函数定义: 使用
func关键字定义函数,可以接受参数并返回值。func add(a, b int) int { return a + b } -
变量和常量: 使用
var声明变量,使用const声明常量。var x int const pi = 3.14159 -
控制流: 使用
if、for和switch实现条件判断和循环。if x > 0 { fmt.Println("Positive") } else { fmt.Println("Non-positive") } for i := 0; i < 5; i++ { fmt.Println(i) }
3. 并发编程:
-
Goroutine: 使用
go关键字创建 Goroutine,实现轻量级并发。func main() { go printNumbers() go printLetters() time.Sleep(time.Second) } func printNumbers() { for i := 1; i <= 5; i++ { fmt.Printf("%d ", i) } } func printLetters() { for char := 'a'; char <= 'e'; char++ { fmt.Printf("%c ", char) } } -
Channel: 使用 Channel 实现 Goroutine 间的通信和同步。
func main() { ch := make(chan int) go sendData(ch) receiveData(ch) } func sendData(ch chan int) { ch <- 1 ch <- 2 ch <- 3 close(ch) } func receiveData(ch chan int) { for { data, ok := <-ch if !ok { break } fmt.Println(data) } }
4. 包和可见性:
-
包结构: Go 语言通过包来组织代码,每个包有其独立的作用域。
package geometry func Area(width, height float64) float64 { return width * height } -
可见性规则: 首字母大写的标识符可以被其他包访问,小写则只能在本包内访问。
5. 错误处理:
-
错误类型: 错误在 Go 中通常由实现
error接口的值表示。func doSomething() error { // ... } -
返回错误: 函数通常返回一个结果和一个错误,允许调用者判断操作是否成功。
6. 标准库:
Go 标准库提供了许多有用的包,用于处理文件、网络、时间、加密等操作。
-
fmt 包: 用于格式化输入输出。
import "fmt" func main() { fmt.Printf("Hello, %s!\n", "Go") } -
net/http 包: 用于处理 HTTP 请求和响应。
import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, Go Web!") } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }
7. 包管理:
Go 使用 go get 命令从远程仓库获取包,go mod 命令用于管理包的版本和依赖关系。
结语:
本篇笔记为您提供了 Go 语言的入门指南,涵盖了基本语法、并发编程、错误处理等方面。通过阅读理论和实际编写代码,您将逐步掌握 Go 语言的核心概念,为您的编程之旅打下坚实的基础。要深入了解更多高级特性和实际应用,请查阅官方文档并继续不断地实践和学习。