Mengalamatkan Nilai Dalam Antara Muka
Untuk memahami mengapa tidak boleh mengambil alamat nilai yang disimpan dalam antara muka, adalah penting untuk menyelidiki sifat pembolehubah antara muka. Pada asasnya, nilai antara muka terdiri daripada dua komponen:
Dua aspek utama yang perlu diberi perhatian:
Pertimbangkan coretan kod berikut:
<code class="go">var v interface{} v = int(42) p := GetPointerToInterfaceValue(&v) // a pointer to an integer holding 42 v = &SomeStruct{...}</code>
Dalam senario ini, storan yang sebelum ini memegang integer digunakan semula untuk menyimpan penunjuk. Akibatnya, penyahrujukan *p kini menghasilkan perwakilan angka penuding.
Untuk mengelakkan menjejaskan sistem jenis, Go dengan sengaja mengehadkan pengambilan penunjuk jenis ini (selain daripada penggunaan pakej yang tidak selamat).
Penyelesaian Alternatif
Jika keperluan anda adalah untuk mengakses penunjuk struct yang disimpan dalam senarai, pertimbangkan alternatif ini:
Atas ialah kandungan terperinci Mengapa Anda Tidak Boleh Mendapatkan Alamat Nilai yang Disimpan dalam Antara Muka Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!