Mencegah Limpahan Tindanan dalam UnmarshalJSON dengan Memintas Panggilan Unmarshal
Dalam konteks pelaksanaan UnmarshalJSON tersuai, langkah tambahan mungkin diperlukan semasa permulaan struktur data. Walau bagaimanapun, menggunakan json.Unmarshal() dalam UnmarshalJSON boleh membawa kepada limpahan tindanan kerana penyahkod JSON berulang kali mencari pelaksanaan tersuai, menghasilkan rekursi yang tidak terhingga.
Untuk mengelakkan isu ini, pelaksanaan lalai asas boleh digunakan tanpa mencetuskan gelung rekursif. Begini caranya:
Buat Jenis Perantaraan dengan Kata Kunci Jenis:
Penukaran Jenis dan Tugasan:
Gunakan Fungsi Default Unmarshal:
Pasca Pemprosesan (Pilihan):
Dengan menggunakan teknik ini, gelung rekursif dipecahkan kerana jenis baharu tidak mempunyai kaedah UnmarshalJSON yang ditentukan. Ini menghalang limpahan timbunan dan membolehkan permulaan yang lancar dengan pemprosesan tambahan.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Limpahan Tindanan dalam `UnmarshalJSON` Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!