作者简介:大数据领域优质创作者、CSDN博客专家 、阿里云博客专家、华为云课堂认证讲师、华为云社区云享专家、坚果派社区成员、具有10余年横向开发经验,全国教师技能大赛获奖教师,现从事于大学计算机领域教育工作。 主要内容:人工智能与大数据、Java、Python、C#、PHP、ASP.NET、ArkTS、FAQ、简历模板、学习资料、面试题库、就业指导等。 初心目标:持续输出,为技术人创造更多的价值。
package main
import "fmt"
func main() {
a, b := 10, 3
fmt.Println("=== 基本算术运算 ===")
fmt.Printf("加法: %d + %d = %d\n", a, b, a+b)
fmt.Printf("减法: %d - %d = %d\n", a, b, a-b)
fmt.Printf("乘法: %d * %d = %d\n", a, b, a*b)
fmt.Printf("除法: %d / %d = %d\n", a, b, a/b)
fmt.Printf("取余: %d %% %d = %d\n", a, b, a%b)
// 自增自减
x := 5
x++
fmt.Printf("自增: x++ = %d\n", x)
x--
fmt.Printf("自减: x-- = %d\n", x)
}
package main
import "fmt"
func main() {
a, b := 10, 5
fmt.Println("=== 比较运算 ===")
fmt.Printf("等于: %d == %d 为 %t\n", a, b, a == b)
fmt.Printf("不等于: %d != %d 为 %t\n", a, b, a != b)
fmt.Printf("大于: %d > %d 为 %t\n", a, b, a > b)
fmt.Printf("小于: %d < %d 为 %t\n", a, b, a < b)
fmt.Printf("大于等于: %d >= %d 为 %t\n", a, b, a >= b)
fmt.Printf("小于等于: %d <= %d 为 %t\n", a, b, a <= b)
}
package main
import "fmt"
func main() {
a, b := true, false
fmt.Println("=== 逻辑运算 ===")
fmt.Printf("与运算: %t && %t = %t\n", a, b, a && b)
fmt.Printf("或运算: %t || %t = %t\n", a, b, a || b)
fmt.Printf("非运算: !%t = %t\n", a, !a)
}
package main
import "fmt"
func main() {
a, b := 60, 13
fmt.Println("=== 位运算 ===")
fmt.Printf("按位与: %d & %d = %d\n", a, b, a&b)
fmt.Printf("按位或: %d | %d = %d\n", a, b, a|b)
fmt.Printf("按位异或: %d ^ %d = %d\n", a, b, a^b)
fmt.Printf("左移: %d << 2 = %d\n", a, a<<2)
fmt.Printf("右移: %d >> 2 = %d\n", a, a>>2)
}
package main
import "fmt"
func main() {
var a int = 10
fmt.Println("=== 赋值运算 ===")
fmt.Printf("初始值: a = %d\n", a)
a += 5
fmt.Printf("加等: a += 5 -> %d\n", a)
a -= 3
fmt.Printf("减等: a -= 3 -> %d\n", a)
a *= 2
fmt.Printf("乘等: a *= 2 -> %d\n", a)
a /= 4
fmt.Printf("除等: a /= 4 -> %d\n", a)
}
运算符优先级从高到低:
1. () 括号 2. * / % << >> & 3. + - | ^ 4. == != < <= > >= 5. && 6. || 7. = += -= *= /= %=
package main
import "fmt"
func main() {
a := 10
b := 5
c := 2
fmt.Println("=== 运算符优先级 ===")
// 演示不同优先级
result1 := a + b*c
fmt.Printf("无括号: a + b * c = %d\n", result1)
result2 := (a + b) * c
fmt.Printf("有括号: (a + b) * c = %d\n", result2)
// 逻辑运算优先级
result3 := true && false || true
fmt.Printf("逻辑运算: true && false || true = %t\n", result3)
}
Go语言中自增自减运算符只能作为语句使用。 不支持三元运算符。 位运算符只能用于整数。 逻辑运算符遵循短路原则。 运算符两侧的操作数类型必须一致。
章节 | 主题 | 内容 |
---|---|---|
第一部分: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 依赖管理 |