package main
import "fmt"
func main() {
// 1. 标准for循环
fmt.Println("=== 标准for循环 ===")
for i := 0; i < 5; i++ {
fmt.Printf("第%d次循环\n", i+1)
}
// 2. 类似while的for循环
fmt.Println("\n=== while形式的for循环 ===")
count := 0
for count < 3 {
fmt.Printf("count: %d\n", count)
count++
}
// 3. 无限循环(使用break退出)
fmt.Println("\n=== break退出循环 ===")
sum := 0
for {
sum++
if sum > 3 {
break
}
fmt.Printf("sum: %d\n", sum)
}
// 4. continue示例
fmt.Println("\n=== continue跳过本次循环 ===")
for i := 1; i <= 5; i++ {
if i%2 == 0 {
continue
}
fmt.Printf("奇数: %d\n", i)
}
}
package main
import "fmt"
func main() {
// 1. 遍历切片
fmt.Println("=== 遍历切片 ===")
numbers := []int{1, 2, 3, 4, 5}
for index, value := range numbers {
fmt.Printf("索引:%d, 值:%d\n", index, value)
}
// 2. 遍历字符串
fmt.Println("\n=== 遍历字符串 ===")
str := "Hello世界"
for i, char := range str {
fmt.Printf("位置:%d, 字符:%c\n", i, char)
}
// 3. 遍历map
fmt.Println("\n=== 遍历map ===")
scores := map[string]int{
"语文": 85,
"数学": 95,
"英语": 90,
}
for subject, score := range scores {
fmt.Printf("%s: %d分\n", subject, score)
}
// 4. 仅使用索引或值
fmt.Println("\n=== 仅使用索引或值 ===")
// 仅使用索引
for i := range numbers {
fmt.Printf("索引: %d\n", i)
}
// 仅使用值
for _, value := range numbers {
fmt.Printf("值: %d\n", value)
}
}
package main
import "fmt"
func main() {
// 1. 九九乘法表
fmt.Println("=== 九九乘法表 ===")
for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d×%d=%d\t", j, i, i*j)
}
fmt.Println()
}
// 2. 带标签的break
fmt.Println("\n=== 带标签的break ===")
outer:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i*j >= 3 {
break outer
}
fmt.Printf("i=%d, j=%d\n", i, j)
}
}
}
循环语句要点:
1. for循环特点:
Go只有for一种循环语句 初始语句和后置语句是可选的 条件表达式也是可选的 支持break和continue 支持标签
2. for-range特点:
用于遍历数组、切片、字符串、map和channel 可以只获取索引或值 使用_忽略不需要的变量 遍历map时顺序是随机的
3. 使用建议:
1. 选择合适的循环方式: 计数循环用标准for 遍历数据结构用for-range 条件循环用while形式的for 2. 性能考虑: 避免在循环中分配内存 大数据结构考虑使用指针 合理使用break和continue 3. 代码风格: 保持循环体简洁 适当使用嵌套循环 合理使用标签 4. 注意事项: 防止死循环 注意边界条件 谨慎使用goto
章节 | 主题 | 内容 |
---|---|---|
第一部分:Go 语言入门 | Go 语言简介 | Go 语言的起源与发展 Go 语言的特点和应用场景 |
开发环境搭建 | 安装 Go 语言开发包(Golang) 配置开发环境变量 选择 IDE / 编辑器(如 VS Code、GoLand) | |
第一个 Go 程序 | 编写 "Hello, World!" 理解程序结构和执行流程 使用 go run 和 go build | |
第二部分:基础语法 | 变量和数据类型 | 变量声明与初始化 基本数据类型(整数、浮点数、布尔值、字符串) 类型转换与推断 |
常量 | 常量定义与使用 iota 枚举原理与应用 | |
运算符 | 算术、逻辑、比较运算符 运算符优先级与结合性 | |
控制结构 | 条件语句(if-else、switch) 循环语句(for、for-range) 跳转语句(break、continue、goto) | |
第三部分:函数 | 函数定义与调用 | 函数语法与参数传递 多返回值 作用域(全局变量 vs 局部变量) |
高级函数特性 | 闭包概念与使用 递归函数原理、实现与注意事项 | |
第四部分:数组、切片和映射 | 数组 | 数组定义、初始化与遍历 多维数组 |
切片 | 切片概念与创建方式 动态扩容机制 常用操作(追加、删除、复制) | |
映射(Map) | 映射定义、初始化与基本操作(增删查) 遍历与排序 | |
第五部分:结构体和方法 | 结构体 | 结构体定义与使用 嵌套与组合 |
方法与接口 | 方法定义与接收器(值 vs 指针) 接口定义、实现与多态性 | |
第六部分:错误处理和异常 | 错误处理 | error 类型机制 自定义错误与处理函数 |
异常处理 | panic 与 recover 使用 异常处理最佳实践 | |
第七部分:并发编程 | Go 协程(Goroutine) | 协程概念与创建方式 并发执行与调度 |
通道(Channel) | 通道定义与使用 同步与通信机制 缓冲通道与无缓冲通道 | |
并发模式与同步原语 | 生产者 - 消费者模式 扇入 / 扇出模式 sync 包(互斥锁、WaitGroup) | |
第八部分:文件操作和输入输出 | 文件操作 | 文件打开、读写、关闭 创建、删除与重命名 |
输入输出 | 标准输入输出(fmt 包) 格式化处理与字符串操作 | |
第九部分:测试和调试 | 单元测试 | testing 包使用 测试覆盖率概念与计算 |
调试技巧 | 使用 gdb 或 IDE 调试功能 日志记录与调试信息输出 | |
第十部分:项目实践 | 小型项目实践 | 实现命令行工具 开发简单 Web 服务器 |
项目结构与管理 | 目录结构组织 go mod 依赖管理 |
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有