ホームページ >バックエンド開発 >Golang >Go Reflection は文字列名から型を派生できますか?

Go Reflection は文字列名から型を派生できますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-23 13:02:11911ブラウズ

Can Go Reflection Derive a Type from its String Name?

考察: 名前から型表現を取得する

質問:

Go では、型を導出することができますかを使用した名前からのデータ型の表現リフレクション?

答え:

この質問に対する答えは、質問されたコンテキストによって異なります。

実行時:

型名が実行時に文字列として利用可能な場合は、リフレクションを使用してその型表現を取得することはできません。これは、直接参照されていない型は最終的な実行可能バイナリに含まれない可能性があるためです。

「コーディング」時:

ただし、型名がコーディングまたはコード生成段階で既知であるため、変数を作成せずにその型表現を取得することが可能です。 type.

これは、その型の Type ポインターを取得し、型付き nil ポインター値を作成し、Type.Elem() を使用してポインターの基本型に移動することで実現できます。結果の型記述子は、その型の変数を作成して反映することによって取得されるものと同じになります。

例:

t := reflect.TypeOf((*YourType)(nil)).Elem()

以上がGo Reflection は文字列名から型を派生できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。