2017-06-17 17 views
1

phpにはオブジェクトのテイラー表現を可能にする__toString()メソッドがあります。例えば:構造体にtoStringメソッドを追加することが可能であるPHPの__toStringメソッドに相当するGoがありますか?

type Person struct { 
    surname string 
    name string 
} 

sensorario := Person{ 
    "Senso", 
    "Rario", 
} 

fmt.Println(sensorario) // this will output "{Senso Rario}" 

:それは可能であるゴーで

final class Foo 
{ 
    public function __toString() 
    { 
     return "custom representation"; 
    } 
} 

$foo = new Foo(); 
echo $foo; // this will output "custom representation" 

は、構造体を作成するには?


EDIT:

func (p *Person) toString() string { 
    return p.surname + " " + p.name 
} 

fmt.Println(simone.toString()) 

しかし、私は、探していますが

fmt.Println(simone.toString()) 

を交換する方法は次のとおりです。私はこの解決策を見つけた

fmt.Println(simone) 
+0

https://stackoverflow.com/a/13247979/1140971 – mlidal

+3

https://play.golang.org/p/eZFdOkRM17 – berserkk

+0

を参照してください。 – sensorario

答えて

4

あなたはStringerインターフェイスを探していると思います。

type Stringer interface { 
    String() string 
} 

このインターフェイスは自動的に明らかにfmtパッケージを含む、多くの異なるライブラリでそれを使用して文字列化され、実際にfmt.Printlnのあなたの例で動作します実装するすべてのタイプ。

+0

とても役に立ちました。ありがとうございます! – sensorario

関連する問題