Apabila mengambil data daripada JSON dan cuba menghantarnya ke integer, anda mungkin menghadapi ralat yang menyatakan bahawa anda tidak boleh menukar antara muka{} kepada int. Ralat ini berlaku disebabkan oleh peraturan penegasan jenis Go.
Dalam kod anda, anda mempunyai baris berikut:
iAreaId := int(val)
Barisan ini cuba menukar val, yang mempunyai antara muka jenis{ }, kepada int menggunakan jenis cast. Walau bagaimanapun, taip menghantar antara muka{} kepada int adalah tidak dibenarkan.
Untuk menyelesaikan isu ini, anda perlu menggunakan penegasan jenis sebaliknya:
iAreaId := val.(int)
Penegasan jenis mengekstrak perkara yang mendasari nilai daripada antara muka{} jika ia mempunyai jenis yang diisytiharkan. Jika nilai tidak mempunyai jenis yang diisytiharkan, penegasan jenis akan panik.
Sebagai alternatif, anda boleh menggunakan versi penegasan jenis yang tidak panik menggunakan nilai pulangan kedua:
iAreaId, ok := val.(int)
Pembolehubah ok akan menjadi benar jika penegasan jenis berjaya dan palsu jika ia tidak berjaya.
Dengan menggunakan penegasan jenis dengan betul, anda boleh berjaya menukar antara muka{} kepada int dalam Go.
Atas ialah kandungan terperinci Bagaimana untuk Menukar antara muka{} dengan Selamat kepada int dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!