Go でカスタム型を操作する場合、動的操作のための文字列表現を取得したり、コードのリファクタリングを容易にします。 fmt.Sprintf("%T", ID{}) の使用は簡単なアプローチですが、型のインスタンス化が必要となり、これは望ましくない可能性があります。
代わりに、これを実現するには、reflect パッケージを使用します。 Reflect.TypeOf 関数を利用し、型へのポインターを操作することにより、Type.Elem() を使用して型の基本型または要素型を取得できます。例:
t := reflect.TypeOf((*ID)(nil)).Elem() name := t.Name() fmt.Println(name)
このアプローチはインスタンス化の必要性を回避し、インターフェイスにも適用できます。型へのポインタから開始すると、その基礎となる具象型に移動できます。
提供されたサンプル コードを実行すると、ID 型の文字列表現が出力されます。
ID
型が次の場合、Type.Name() は空の文字列を返す可能性があることに注意することが重要です。無名。これは通常、匿名の構造体や関数の結果を使用する場合など、型が名前なしで定義されている場合に発生します。
以上がインスタンス化せずに Go 型の文字列表現をプログラムで取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。