リフレクションを使用すると、型名、記憶域サイズ、および指定された型の関数(uint64、ユーザー定義の構造体など)を取得できます。さらに、与えられた型のいくつかのフィールドを変更することもできます。 golangはどのように反射を実装していますか?私は、次の方法を推測:golangはリフレクションをどのように実装していますか?
あらゆるタイプgolangで、ユーザー定義型を含む、それ自体は、型名の情報を持っている名前と関数名をフィールドに入力します。 Golangのリフレクションは、これらの情報を読み込んだり、関数を呼び出すだけです。
いくつかのメカニズムを使用して、Golangはタイプ名、ストレージサイズなどを取得できます。タイプ自体にはこれらの情報はありません。
私はゴーリン反射コードをおおよそ読み取っています。私はgolangが第2の方法を使用したと推測しました。 リフレクションの具体的な実装方法は誰が記述できますか?または私にいくつかの文書をお勧めしますか?すべてのコードを読むのは難しいです。
簡単に言えば、golangのリフレクションは、タイプ名、ストレージサイズ、フィールド、関数などのタイプの情報をどのように取得するのですか。さえ、反射は値を設定することができます。 –