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 的简洁性与高效并发能力!
        
      
                    
                  
                    
