Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menambah pada kepingan yang jenis elemennya bukan jenis bernama dalam golang
editor php Banana akan memperkenalkan anda cara melekat pada kepingan yang jenis elemennya bukan jenis bernama dalam golang. Di Golang, kita boleh menggunakan fungsi tambah terbina dalam untuk menambahkan elemen pada hirisan, tetapi jika jenis elemen hirisan bukan jenis yang dinamakan, iaitu jenis tanpa nama, kita perlu mencipta hirisan sementara dahulu, kemudian tambahkan elemen pada kepingan sementara, dan akhir sekali Kemudian salin elemen kepingan sementara kembali ke kepingan asal. Melakukan ini memastikan bahawa data kepingan asal tidak hilang semasa menambahkan elemen. Seterusnya, kami akan memperincikan langkah-langkah khusus proses ini.
Saya mempunyai dua struktur:
type responsequeryhotel struct { querystring *string `json:"querystring"` status string `json:"status"` action string `json:"action"` refcode string `json:"refcode"` vendorid string `json:"vendorid"` searchtoken *string `json:"searchtoken"` data struct { hotels []struct { data responsequeryhotelsdata `json:"data"` } `json:"hotels"` } `json:"data"` } type responsequeryhotelsdata struct { hotelidvendor string `json:"hotelidvendor"` hotelname string `json:"hotelname"` hoteladdress string `json:"hoteladdress"` hoteldistrict string `json:"hoteldistrict"` hotelcity string `json:"hotelcity"` hotelprovince string `json:"hotelprovince"` hotelcountry string `json:"hotelcountry"` hotellat string `json:"hotellat"` hotellng string `json:"hotellng"` hotelprice string `json:"hotelprice"` hoteldiscountprice string `json:"hoteldiscountprice"` hotelphotourl string `json:"hotelphotourl"` }
Kini saya perlu menambahkan item pada responsequeryhotel.data.hotels
yang jenis elemennya bukan nama yang dinamakan. Jadi saya mencuba ini:
var output models.responsequeryhotel var data models.responsequeryhotelsdata output.data.hotels = append(output.data.hotels, data)
Tetapi saya mendapat ralat ini:
cannot use data (variable of type models.ResponseQueryHotelsData) as struct{Data models.ResponseQueryHotelsData "json:\"data\""} value in argument to append
Bagaimana saya harus melampirkan item pada output.data.hotels
(将有超过 1 个 responsequeryhotelsdata
tambah).
BTW, saya tidak boleh mengubah struktur (itu di luar kawalan saya).
Jika anda perlu menggunakannya beberapa kali, tentukan alias untuk jenis asas yang sama:
type hotel = struct { data responsequeryhotelsdata `json:"data"` } hotels := []hotel{ {data: responsequeryhotelsdata{}}, {data: responsequeryhotelsdata{}}, } output.data.hotels = append(output.data.hotels, hotels...)
Atau jika anda hanya memerlukannya sekali, isytiharkan jenis struct di tempatnya:
hotels := []struct { Data ResponseQueryHotelsData `json:"data"` }{ {Data: ResponseQueryHotelsData{}}, {Data: ResponseQueryHotelsData{}}, } output.Data.Hotels = append(output.Data.Hotels, hotels...)Bahagian
kebolehdistribusian dalam spesifikasi golang menyatakan:
Nilai x jenis v boleh diserahkan kepada pembolehubah jenis t ("x boleh diserahkan kepada t") jika salah satu daripada syarat berikut adalah benar:
Atas ialah kandungan terperinci Bagaimana untuk menambah pada kepingan yang jenis elemennya bukan jenis bernama dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!