Go语言学习笔记整理和分享
最近在学习Go语言,整理了一些学习笔记,想和大家分享一下。不知道大家有没有推荐的Go语言学习资源或者实用的工具?另外,在整理笔记过程中遇到一些不太理解的地方,比如goroutine的调度机制和channel的高级用法,有没有比较清晰的讲解或示例可以参考?欢迎大家一起交流讨论!
2 回复
Go语言学习笔记整理:基础语法、并发模型、接口设计等核心内容。推荐使用GitHub或博客分享,附上代码示例和实践心得,方便交流。
Go语言学习笔记整理与分享
一、基础语法
-
变量声明
- 使用
var或短变量声明:=:var name string = "Go" age := 10 // 类型推断 - 常量用
const,支持无类型常量。
- 使用
-
数据类型
- 基本类型:
int,float64,bool,string。 - 复合类型:数组、切片(动态数组)、Map、结构体。
- 切片示例:
nums := []int{1, 2, 3} nums = append(nums, 4) // 追加元素
- 基本类型:
-
函数
- 支持多返回值:
func divide(a, b int) (int, error) { if b == 0 { return 0, errors.New("除数不能为0") } return a / b, nil }
- 支持多返回值:
-
控制结构
- 循环仅用
for:for i := 0; i < 5; i++ { fmt.Println(i) } - 条件语句:
if、switch(无需break)。
- 循环仅用
二、核心特性
-
并发编程
- 使用 Goroutine 和 Channel:
func main() { ch := make(chan int) go func() { ch <- 1 }() // 启动 Goroutine fmt.Println(<-ch) // 输出 1 } - 通过
sync.Mutex处理数据竞争。
- 使用 Goroutine 和 Channel:
-
错误处理
- 通过返回
error类型显式处理错误,避免异常机制。
- 通过返回
-
接口与结构体
- 接口隐式实现:
type Writer interface { Write([]byte) error } type File struct{} func (f File) Write(data []byte) error { return nil // 自动实现 Writer }
- 接口隐式实现:
三、常用标准库
fmt:格式化输入输出。net/http:构建 HTTP 服务:http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello, Go!") }) http.ListenAndServe(":8080", nil)encoding/json:JSON 序列化与反序列化。
四、学习建议
- 实践项目
- 从 CLI 工具或 REST API 服务开始,巩固语法和并发模型。
- 代码规范
- 使用
gofmt格式化代码,遵循官方命名约定。
- 使用
- 资源推荐
- 官方文档:golang.org
- 书籍:《The Go Programming Language》
通过系统整理和动手编码,可快速掌握 Go 的简洁性与高效并发能力!

