Go

Reflection

reflectパッケージ、型の検査、値の操作、struct tags、ユースケース、パフォーマンス

20 面接問題·
Senior
1

Goのreflectパッケージとは何ですか?

回答

reflectパッケージは、実行時(ランタイム)に型と値を検査・操作できるようにします。汎用ライブラリ(JSONマーシャリング、ORM)の実装に使われますが、型安全性とパフォーマンスを犠牲にするため、アプリケーションコードでの直接利用は推奨されません。

2

reflectパッケージで変数の型を取得するにはどうすればよいですか?

回答

reflect.TypeOf()関数は、引数として渡されたインターフェースの動的な型を表すreflect.Typeを返します。変数がnilの場合、reflect.TypeOf()はnilを返します。返されたTypeに.Kind()を使うと、型のカテゴリ(int、string、structなど)を取得できます。

3

reflect.Typeとreflect.Valueの違いは何ですか?

回答

reflect.Typeは型のメタデータ(名前、kind、メソッド、フィールド)を表し、reflect.TypeOf()で取得します。reflect.Valueは具体的な値を表し、reflect.ValueOf()で読み取りや変更ができます。両者は補完的で、Typeは「何か」を記述し、Valueは「データ」を保持します。

4

reflectionを使って変数の値を変更するにはどうすればよいですか?

5

reflect.Kindとは何ですか?

+17 面接問題

次の面接に向けてGoをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める