ホームページ > バックエンド開発 > Golang > String() メソッドを使用してフィールドを含む Go 構造体を効果的に出力するにはどうすればよいですか?

String() メソッドを使用してフィールドを含む Go 構造体を効果的に出力するにはどうすればよいですか?

DDD
リリース: 2024-12-08 02:48:09
オリジナル
399 人が閲覧しました

How Can I Effectively Print Go Structs Containing Fields with String() Methods?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート