Skip to content

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