質問:
Go では、型を導出することができますかを使用した名前からのデータ型の表現リフレクション?
答え:
この質問に対する答えは、質問されたコンテキストによって異なります。
実行時:
型名が実行時に文字列として利用可能な場合は、リフレクションを使用してその型表現を取得することはできません。これは、直接参照されていない型は最終的な実行可能バイナリに含まれない可能性があるためです。
「コーディング」時:
ただし、型名がコーディングまたはコード生成段階で既知であるため、変数を作成せずにその型表現を取得することが可能です。 type.
これは、その型の Type ポインターを取得し、型付き nil ポインター値を作成し、Type.Elem() を使用してポインターの基本型に移動することで実現できます。結果の型記述子は、その型の変数を作成して反映することによって取得されるものと同じになります。
例:
t := reflect.TypeOf((*YourType)(nil)).Elem()
以上がGo Reflection は文字列名から型を派生できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。