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
Lepaskan: 2024-12-15 08:06:17
asal
989 orang telah melayarinya

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

Menukar antara muka{} kepada int dalam Go

Kod Go anda cuba menukar nilai antara muka{} kepada int secara langsung, tetapi penukaran gagal kerana kekangan jenis. Mesej ralat menunjukkan bahawa penegasan jenis diperlukan untuk penukaran ini.

Mari kita fahami masalah dan penyelesaiannya:

Masalah:

Dalam kod yang disediakan, val pembolehubah ialah antara muka jenis{}. Ini bermakna ia boleh menyimpan nilai apa-apa jenis. Tugasan iAreaId := int(val) cuba menukar nilai antara muka{} kepada int. Walau bagaimanapun, penukaran langsung ini tidak dibenarkan dalam Go.

Penyelesaian:

Untuk menukar nilai antara muka{} dengan betul kepada jenis tertentu, penegasan jenis diperlukan. Penegasan jenis memberikan pengkompil dengan petunjuk eksplisit bahawa anda ingin menukar nilai kepada jenis tertentu.

Untuk menegaskan val sebagai int, gunakan salah satu sintaks berikut:

  1. Rawan panik:

    iAreaId := val.(int)
    Salin selepas log masuk

    Jika val tidak boleh ditukar kepada int, pendekatan ini akan panik.

  2. Tidak panik:

    iAreaId, ok := val.(int)
    Salin selepas log masuk

    Pendekatan ini memperuntukkan iAreaId kepada nilai yang ditukar dan ok kepada boolean yang menunjukkan sama ada penukaran berjaya. Jika penukaran gagal, ok akan menjadi palsu.

Memahami Peraturan Penukaran:

Penukaran terus daripada antara muka{} kepada jenis tertentu ialah tidak dibenarkan mengikut spesifikasi bahasa Go. Penegasan jenis diperlukan untuk mengatasi peraturan ini dan secara eksplisit menghantar nilai kepada jenis yang diingini.

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan