Go でのメソッドの存在のクエリ
Go では、Objective-C とは異なり、オブジェクトに特定のメソッドが存在するかどうかを確認する明示的なメカニズムはありません。方法。ただし、このニーズに対処するためのアプローチがいくつかあります。
単純なメソッド チェック
関心のあるメソッドのみを使用してインターフェイスを定義し、型を実行できます。オブジェクトに対するアサーション:
i, ok := myInstance.(InterfaceImplementingThatOneMethodIcareAbout)
または:
i, ok = myInstance.(interface{ F() })
ok の true 値は、メソッドが存在することを示します。
高度なアプローチ: Reflect パッケージ
reflect パッケージは、型をイントロスペクトするためのより包括的な方法を提供します。
st := reflect.TypeOf(myInstance) m, ok := st.MethodByName("F")
ok が false の場合、メソッドは存在しません。それ以外の場合は、m.F().
を使用してメソッドを呼び出すことができます。以上がGo でメソッドの存在を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。