Menukar Slice of Structs to Slice of Empty Interface
Menetapkan sekeping struct kepada secebis antara muka kosong adalah tidak mudah kerana jenis ketidakserasian, seperti yang dilihat dalam kod berikut:
type MyStruct struct { // ... } var src []*MyStruct var dest []interface{} dest = src // Compilation error
Ini ralat timbul kerana pengkompil mengenal pasti kedua-dua jenis sebagai tidak serasi. Untuk menyelesaikannya, seseorang mesti menyalin setiap elemen secara manual:
for _, s := range src { dest = append(dest, s) }
Walaupun membosankan menyalin elemen satu demi satu, ia adalah perlu kerana menghantar struct ke antara muka melibatkan pembalut struct dalam penunjuk antara muka dan jenis deskriptor. Menyalin setiap elemen secara berasingan memastikan proses pembungkusan ini dilakukan dengan betul.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Sekeping Struktur kepada Sekeping Antara Muka Kosong dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!