package main import "fmt" // 1. 定义新类型 type Celsius float64 // 2. 实现 fmt.Stringer 接口(关键) func (c Celsius) String() string { return fmt.Sprintf("%.1f°C", c) } // 3. 额外示例:指针接收者方法,可修改自身 func (c *Celsius) Add(delta float64) { *c += Celsius(delta) } func main() { // 值类型变量 var roomTemp Celsius = 21 fmt.Println("房间温度:", roomTemp) // 自动调用 String() // 指针类型变量 freezer := new(Celsius) // *Celsius *freezer = -18 fmt.Println("冷冻室:", freezer) // 同样调用 String() // 修改温度 roomTemp.Add(3) fmt.Println("升温后:", roomTemp) }