package main import "fmt" var globalVar int = 100 func main() { exercise1() exercise2() exercise3() exercise4() exercise5() } // 练习1:标准变量声明 // 目标:使用var关键字声明不同类型的变量并初始化 func exercise1() { fmt.Println("=== 练习1:标准变量声明 ===") // 声明一个string类型变量,命名为name,值为"张三" var name string = "张三" // 声明一个int类型变量,命名为age,值为25 var age int = 25 // 使用类型推断声明一个bool类型变量,命名为isStudent,值为true var isStudent bool = true fmt.Printf("姓名: %s, 年龄: %d, 是学生: %t\n", name, age, isStudent) } // 练习2:短变量声明 // 目标:使用:=进行变量声明(只能在函数内使用) func exercise2() { fmt.Println("\n=== 练习2:短变量声明 ===") // 使用:=声明一个string变量,命名为city,值为"北京" city := "北京" // 使用:=声明一个float64变量,命名为price,值为99.5 price := 99.5 // 使用:=声明多个变量,x=10, y=20, z=30 x, y, z := 10, 20, 30 fmt.Printf("城市: %s, 价格: %.2f, 坐标: (%d, %d, %d)\n", city, price, x, y, z) } // 练习3:批量声明 // 目标:使用var()批量声明多个变量 func exercise3() { fmt.Println("\n=== 练习3:批量声明 ===") // 使用var()批量声明以下变量: // username: string = "go_learner" // email: string = "learner@example.com" // level: int = 1 // experience: float64 = 0.0 var ( username string = "go_learner" email string = "learner@example.com" level int = 1 experience float64 = 0.0 ) fmt.Printf("用户: %s\n邮箱: %s\n等级: %d\n经验值: %.1f\n", username, email, level, experience) } // 练习4:变量作用域 // 目标:理解全局变量和局部变量的作用域 func exercise4() { fmt.Println("\n=== 练习4:变量作用域 ===") // 直接打印全局变量globalVar的值 fmt.Printf("全局变量 globalVar 的值: %d\n", globalVar) // 声明一个局部变量,命名为localVar,值为50 localVar := 50 fmt.Printf("局部变量 localVar 的值: %d\n", localVar) } // 练习5:作用域遮蔽 // 目标:理解内层代码块变量如何遮蔽外层变量 func exercise5() { fmt.Println("\n=== 练习5:作用域遮蔽 ===") // 外层变量 outer := "我是外层变量" if true { // 在if代码块内声明一个同名的变量,值为"我是内层变量" // 这会遮蔽外层的outer变量 outer := "我是内层变量" fmt.Printf("代码块内: %s\n", outer) } fmt.Printf("代码块外: %s\n", outer) }