Golang での構造体のダンプ メソッド
Golang の "fmt" パッケージには、構造体のプロパティをダンプするための "Printf" メソッドが用意されていますが、構造体のプロパティとメソッドの両方を取得する必要があります。次の例を考えてみましょう。
type Foo struct { Prop string } func (f Foo)Bar() string { return f.Prop }
タイプ "Foo" の初期化されたインスタンス内の "Bar()" メソッドの存在を確認するには、"reflect" パッケージの使用を検討してください。その方法は次のとおりです。
fooType := reflect.TypeOf(&Foo{}) for i := 0; i < fooType.NumMethod(); i++ { method := fooType.Method(i) fmt.Println(method.Name) }
型が特定のメソッド セットを実装しているかどうかを判断することが目的の場合は、インターフェイスと型アサーションの方が便利かもしれません。例:
func implementsBar(v interface{}) bool { type Barer interface { Bar() string } _, ok := v.(Barer) return ok }
「Bar()」メソッドの「Foo」のインスタンスをテストするには:
fmt.Println("Foo implements the Bar method:", implementsBar(Foo{}))
または、型に特定のメソッドがあることを明示的にアサートします。コンパイル時間:
var _ Barer = Foo{}
以上がGo 構造体のプロパティとメソッドの両方をダンプするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。