package main

import "fmt"

type A struct {
	name string
	age  int
}

func (a *A) String() string {
	return fmt.Sprintf("%s %d", a.name, a.age)
}

func main() {
	a := A{"liujia", 33}
	fmt.Printf("%s", a)
}

定义的 *A, 就不能定义 A 了. 那调用的时候, 就只能传 &a . 感觉不是很灵活.