Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menukar antara muka{} dengan Selamat kepada int dalam Go?

Bagaimana untuk Menukar antara muka{} dengan Selamat kepada int dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-24 17:16:16590semak imbas

How to Safely Convert interface{} to int in Go?

Menukar antara muka{} kepada int dalam Go

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn