Jenis dan Nilai Refleksi dalam Go
Refleksi dalam Go membolehkan pembangun memeriksa dan memanipulasi jenis dan nilai pada masa jalan. Memahami perbezaan mereka adalah penting untuk penggunaan pantulan yang berkesan.
Jenis vs. Nilai dalam Refleksi
Dalam pantulan, pantulkan.TypeOf(i) mengembalikan objek pantulan.Type , manakala reflect.ValueOf(i) mengembalikan objek reflect.Value.
reflect.Type
reflect.Value
Contoh
Dalam coretan kod:
<code class="go">func show(i interface{}) { switch t := i.(type) { case *Person: t := reflect.TypeOf(i) // Get the type of *Person v := reflect.ValueOf(i) // Get the value of i tag := t.Elem().Field(0).Tag name := v.Elem().Field(0).String() } }</code>
Dengan memahami perbezaan antara jenis dan nilai dalam pantulan, pembangun boleh memanfaatkan kuasa pantulan dalam pelbagai senario, termasuk introspeksi, seruan kaedah dinamik dan siri data .
Atas ialah kandungan terperinci Apakah perbezaan utama antara reflect.Type dan reflect.Nilai dalam refleksi Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!