go基础语法

133 阅读3分钟

Go语言学习笔记 - 从入门到入土 🚀

0. 学习感悟 💭

学习Go语言的过程既有收获也有挑战。 最初被它的简洁语法吸引,但在并发编程等概念上确实遇到了不少困难 😅 通过持续学习和实践,逐渐理解了Go语言的设计理念。

1. Go语言简介 ✨

Go是由Google开发的开源语言,旨在兼顾开发效率和运行性能。 主要特点:

  • 语法简洁,易于学习 📚
  • 自动垃圾回收 🗑️
  • 原生并发支持 ⚡
  • 快速编译 🚀
  • 跨平台兼容 💻

2. 基础语法

2.1 变量声明

var name string        // 标准声明
name := "Go"          // 简短声明(推荐)
const PI = 3.14       // 常量声明

2.2 基本数据类型

// Go的类型转换非常严格,需要显式转换
数值类型:int(常用), int8~int64, float32/64
字符串:string (原生支持UTF-8)
布尔型:bool
复数:complex64/128 (特殊场景使用)

2.3 控制结构

// Go简化了条件语句的写法
x > 0 {
    fmt.Println("正数")
} else {
    fmt.Println("负数或0")
}
// for循环统一了所有迭代形式
for i := 0; i < 10; i++ {
    // 循环体
}
// switch语句默认break
switch value {
case 1:
    fmt.Println("第一项")
default:
    fmt.Println("默认项")
}

3. 函数

// Go支持命名返回值
func divide(x, y float64) (result float64, err error) {
    if y == 0 {
        return 0, errors.New("除数不能为0")
    }
    return x / y, nil
}

4. 并发编程 (重点)

4.1 Goroutine

// 轻量级线程
go fmt.Println("并发执行")  // 注意生命周期管理

4.2 Channel

// goroutine间的通信机制
ch := make(chan int, 1)  // 缓冲channel
ch <- 100               // 发送数据
value := <-ch           // 接收数据

5. 错误处理

// 显式的错误处理
if err != nil {
    return fmt.Errorf("操作失败:%v", err)
}
// defer用于资源清理
defer file.Close()

6. 包管理

go mod init       // 项目初始化
go get           // 依赖下载
go mod tidy      // 依赖整理

7. 实践经验

  • 遵循官方代码规范
  • 重视单元测试
  • 谨慎处理并发逻辑
  • 关注性能优化

8. 常用标准库

fmt:标准输入输出
strings:字符串处理
time:时间处理
net/http:HTTP服务
encoding/json:JSON处理

9. 总结与心得 🎯

作为一名初学者,回顾Go语言的学习历程,有几点深刻的体会:

代码哲学 🤔:

  • Go推崇"简单胜于复杂"的设计理念
  • 大道至简,不要过度设计
  • 可读性是第一位的,代码写给人看,顺便给机器执行

学习建议 📝:

  • 多写代码,光看不练是学不会的 💪
  • 阅读优秀的开源项目源码 👀
  • 参与社区讨论,与他人交流 🗣️
  • 记录学习笔记,总结经验教训 ✍️

实践心得 🛠️:

  • 并发编程最开始会很懵,这很正常 😵
  • 多关注官方博客和release notes 📰
  • 遇到问题先查官方文档 📚
  • 善用go fmt和go vet等工具 🔧
  • 写测试用例是个好习惯 ✅

未来展望 🔮:

  • Go语言生态持续繁荣 🌱
  • 云原生领域的主力军 ☁️
  • 微服务开发的不二之选 🔥
  • 就业前景非常看好 💼

最后的话 🌟:

Go语言设计优雅,性能出色,特别适合服务端开发。 虽然学习过程中会遇到一些挑战,但只要保持热情和耐心, 通过持续学习和实践,相信每个人都能掌握这门优秀的编程语言。 让我们一起在Go语言的世界里继续探索和成长! 🚀

注:本笔记会持续更新,欢迎交流分享学习经验。 💡