Go で型の文字列表現を取得する
次の型定義を考えてみましょう。
type ID uuid.UUID
取得するには型の文字列表現をプログラム的に使用する場合の 1 つのアプローチは、 fmt.Sprintf("%T", ID{}) 関数。ただし、この方法は非効率的である可能性があり、型のインスタンス化が必要です。
代替ソリューションは、reflect パッケージにあります。型のポインタへの参照を取得することで、割り当てなしで「型付き nil」ポインタを作成できます。このポインターを使用すると、Type.Elem() メソッドを使用して型の記述子にアクセスでき、ポインターの基本型または要素型を取得します。
例:
t := reflect.TypeOf((*ID)(nil)).Elem() name := t.Name() fmt.Println(name)
このアプローチでは、次のことが可能になります。いくつかの利点:
Type に注意することが重要です。 .Name() は、名前のない型に対して空の文字列を返す場合があります。 type キーワードを使用した型宣言を使用している場合は、空ではない型名を取得します。
reflect パッケージを利用すると、柔軟かつ効率的な方法で型の文字列表現を取得できます。
以上がGo 型の文字列表現を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。