package main import ( "fmt" "strconv" ) func main() { fmt.Println("=== 变量声明示例 ===") // 方式1: 标准声明 可以用于包级别声明 var name string = "张三" var age int = 25 // 方式2: 类型推断 可以用于包级别声明 var city = "北京" var score = 95.5 // 方式3: 短声明(最常用) 不能用于包级别声明 email := "test@example.com" isActive := true // 方式4: 批量声明 var ( username = "admin" password = "123456" port = 8080 ) fmt.Printf("姓名: %s, 年龄: %d, 城市: %s\n", name, age, city) fmt.Printf("分数: %.2f, 邮箱: %s, 激活: %t\n", score, email, isActive) fmt.Printf("用户: %s, 端口: %d\n", username, port) _ = password // 避免未使用变量错误 fmt.Println("\n=== 数据类型示例 ===") // 整数 var num int = 100 var byte1 uint8 = 255 // 浮点数 var pi float64 = 3.141592653589793 // 字符串 var greeting = "Hello, Go!" multiline := ` 这是多行字符串 保留格式 ` // 布尔值 var flag bool = true fmt.Printf("整数: %d, 字节: %d\n", num, byte1) fmt.Printf("浮点数: %f\n", pi) fmt.Printf("字符串: %s\n", greeting) fmt.Printf("多行: %s\n", multiline) fmt.Printf("布尔: %t\n", flag) fmt.Println("\n=== 常量示例 ===") const PI = 3.14159 const AppName = "MyApp" const ( StatusOK = 200 StatusNotFound = 404 StatusError = 500 ) const ( Monday = iota // 0 Tuesday // 1 Wednesday // 2 Thursday // 3 Friday // 4 ) fmt.Printf("常量 PI: %f, App: %s\n", PI, AppName) fmt.Printf("状态码: %d, %d, %d\n", StatusOK, StatusNotFound, StatusError) fmt.Printf("星期: %d, %d, %d\n", Monday, Tuesday, Wednesday) fmt.Println("\n=== 类型转换示例 ===") // 数值转换 var i int = 42 var f float64 = float64(i) var u uint = uint(f) fmt.Printf("int: %d -> float64: %f -> uint: %d\n", i, f, u) // 字符串与数值转换 num2 := 123 str := strconv.Itoa(num2) fmt.Printf("int to string: %s (类型: %T)\n", str, str) str2 := "456" num3, err := strconv.Atoi(str2) if err != nil { fmt.Println("转换失败:", err) } else { fmt.Printf("string to int: %d (类型: %T)\n", num3, num3) } fmt.Println("\n=== 运算符示例 ===") a, b := 10, 3 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) // 比较运算 fmt.Printf("%d == %d: %t\n", a, b, a == b) fmt.Printf("%d > %d: %t\n", a, b, a > b) // 逻辑运算 t, f2 := true, false fmt.Printf("true && false: %t\n", t && f2) fmt.Printf("true || false: %t\n", t || f2) fmt.Printf("!true: %t\n", !t) fmt.Println("\n=== 零值示例 ===") var zeroInt int var zeroFloat float64 var zeroBool bool var zeroString string fmt.Printf("int零值: %d, float零值: %f, bool零值: %t, string零值: '%s'\n", zeroInt, zeroFloat, zeroBool, zeroString) }