Usando il reflection, possiamo ottenere il nome del tipo, la dimensione dello storage e la funzione del tipo specificato (come uint64, struct definito dall'utente e così via). Anche, possiamo modificare alcuni campi del tipo specificato. In che modo golang implementa i riflessi? Credo che le seguenti modalità:In che modo golan implementa la riflessione?
Ogni tipo di golang, tra cui tipo definito dall'utente, a sua volta ha le informazioni su nome del tipo, campi Nome e il nome della funzione. Il riflesso di Golang legge queste informazioni o chiama la funzione.
Attraverso alcuni meccanismi, Golang può ottenere il nome del tipo, la dimensione della memoria e così via. E il tipo stesso non ha queste informazioni.
Ho letto il codice di riflessione golang all'incirca. Immaginai che il golang usasse la seconda strada. Chi può descrivere l'attrezzo concreto della riflessione? O mi consiglia alcuni documenti? Leggere tutto il codice è difficile per me.
In parole semplici, in che modo la riflessione di Golang ottiene le informazioni di tipo, come nome del tipo, dimensioni di archiviazione, campi, funzione e così via. Anche, la riflessione può impostare il valore. –