package main import "fmt" func main() { // 定义格式字符串常量(避免硬编码导致的数量/格式错误) const userFormat = "用户信息:ID=%d,姓名=%s,年龄=%d \n" // 1. 处理参数类型不匹配错误 _, err := fmt.Printf(userFormat, "invalid_id", "sanmiao", 20) // ID应为int,却传string if err != nil { fmt.Printf("格式化错误(类型不匹配):%v\n", err) } // 输出:用户信息:ID=%!d(string=invalid_id),姓名=sanmiao,年龄=20 // 2. 处理参数数量不匹配错误 _, err = fmt.Printf(userFormat, 1001, "sanmiao") // 缺少“年龄”参数 if err != nil { fmt.Printf("格式化错误(数量不匹配):%v\n", err) } // 输出:用户信息:ID=1001,姓名=sanmiao,年龄=%!d(MISSING) // 3. 正确用法 _, err = fmt.Printf(userFormat, 1001, "sanmiao", 20) if err == nil { fmt.Println("\n格式化成功!") } // 输出:用户信息:ID=1001,姓名=sanmiao,年龄=20 }