在php中存在一个__toString()
方法,允许对对象进行taylored表示。例如:
final class Foo
{
public function __toString()
{
return "custom representation";
}
}
$foo = new Foo();
echo $foo; // this will output "custom representation"
在Go中,可以创建一个结构:
type Person struct {
surname string
name string
}
sensorario := Person{
"Senso",
"Rario",
}
fmt.Println(sensorario) // this will output "{Senso Rario}"
可以在结构中添加toString方法吗?
编辑:
我找到了这个解决方案:
func (p *Person) toString() string {
return p.surname + " " + p.name
}
fmt.Println(simone.toString())
但我正在寻找的是替换
的方法fmt.Println(simone.toString())
与
fmt.Println(simone)
答案 0 :(得分:4)
我认为你正在寻找Stringer界面。
type Stringer interface {
String() string
}
实现此接口的任何类型都会被许多不同的库自动使用它进行字符串化,显然包括fmt
包,并且确实适用于fmt.Println
的示例。