
Reflection
reflectパッケージ、型の検査、値の操作、struct tags、ユースケース、パフォーマンス
20 面接問題·
Senior
1Goのreflectパッケージとは何ですか?
1
Goのreflectパッケージとは何ですか?
回答
reflectパッケージは、実行時(ランタイム)に型と値を検査・操作できるようにします。汎用ライブラリ(JSONマーシャリング、ORM)の実装に使われますが、型安全性とパフォーマンスを犠牲にするため、アプリケーションコードでの直接利用は推奨されません。
2reflectパッケージで変数の型を取得するにはどうすればよいですか?
2
reflectパッケージで変数の型を取得するにはどうすればよいですか?
回答
reflect.TypeOf()関数は、引数として渡されたインターフェースの動的な型を表すreflect.Typeを返します。変数がnilの場合、reflect.TypeOf()はnilを返します。返されたTypeに.Kind()を使うと、型のカテゴリ(int、string、structなど)を取得できます。
3reflect.Typeとreflect.Valueの違いは何ですか?
3
reflect.Typeとreflect.Valueの違いは何ですか?
回答
reflect.Typeは型のメタデータ(名前、kind、メソッド、フィールド)を表し、reflect.TypeOf()で取得します。reflect.Valueは具体的な値を表し、reflect.ValueOf()で読み取りや変更ができます。両者は補完的で、Typeは「何か」を記述し、Valueは「データ」を保持します。
4
reflectionを使って変数の値を変更するにはどうすればよいですか?
5
reflect.Kindとは何ですか?
+17 面接問題
その他のGo面接トピック
Goの基礎
Junior
25問Goのデータ構造
Junior
20問Go のインターフェース
Junior
18問エラー処理
Junior
20問Goroutine の基礎
Junior
20問Channels
Junior
22問Go Modules
Mid-Level
18問HTTP サーバー
Mid-Level
24問HTTPクライアント
Mid-Level
18問JSON エンコーディング
Mid-Level
20問Database/SQL
Mid-Level
22問context パッケージ
Mid-Level
20問Testing
Mid-Level
22問並行処理パターン
Mid-Level
24問同期プリミティブ
Mid-Level
22問Go Web フレームワーク
Mid-Level
20問REST API 設計
Mid-Level
20問gRPC
Mid-Level
22問メモリ管理
Senior
24問パフォーマンス最適化
Senior
22問Generics
Senior
20問Go Design Patterns
Senior
24問Microservices
Senior
24問セキュリティと認証
Senior
24問Docker & Containerization
Senior
20問Kubernetes Basics
Senior
22問高度な Go
Senior
20問CLI開発
Senior
20問