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)
}
