Field String() メソッドを使用して構造体を出力する方法
fmt.Println() は構造体のネイティブ表現を出力します。デフォルトでは String() インターフェイス。すべての構造体に String() を実装するのは面倒な場合があり、フィールドの追加または削除時に更新が必要になります。
カスタム印刷用のヘルパー関数
この制限に対処するには、次のことができます。リフレクションを活用するヘルパー関数を利用します (reflect パッケージ):
func PrintStruct(s interface{}, names bool) string { // ... // (function body as provided in the answer) }
この関数構造体フィールドを反復処理し、該当する場合は String() 値を取得します:
fmt.Println(PrintStruct(a, true))
Struct-Specific String() Method
または、String() を定義できます。 PrintStruct() を呼び出す構造体のメソッドfunction:
func (a A) String() string { return PrintStruct(a, true) }
このメソッドは、String() メソッドを変更せずに、構造体フィールドの動的な変更を処理します。
使用法
ヘルパーを使用する関数または構造体固有の String() メソッドを使用すると、フィールド String() を含む構造体を簡単に出力できます。値:
// using the PrintStruct() function fmt.Println(PrintStruct(a, true)) // using the custom String() method (if defined) fmt.Println(a)
以上がString() メソッドを使用してフィールドを含む Go 構造体を効果的に出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。