Stringer
https://tour.go-zh.org/methods/17
Go 世界里的“官方 toString”。
go
package main
import "fmt"
type User struct {
Name string
Age int
}
func (u User) String() string {
return fmt.Sprintf("User(name=%s, age=%d)", u.Name, u.Age)
}
func main() {
u := User{"Tom", 18}
fmt.Println(u)
}Stringer 在哪里会生效?
- fmt.Print
- fmt.Println
- fmt.Sprintf
- fmt.Fprintf
- 日志库(log / zap / slog 等)