Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah saya Mengisytiharkan Jenis Pembolehubah Secara Eksplisit dalam Permulaan Gelung Go's?

Bolehkah saya Mengisytiharkan Jenis Pembolehubah Secara Eksplisit dalam Permulaan Gelung Go's?

Barbara Streisand
Barbara Streisandasal
2024-11-24 10:53:13297semak imbas

Can I Explicitly Declare Variable Types in Go's For Loop Initialization?

Pengisytiharan Pembolehubah dalam Pernyataan Permulaan bagi Gelung For dalam Go

Dalam Go, apabila mengisytiharkan pembolehubah dalam penyataan permulaan bagi gelung for, salah tanggapan biasa timbul apabila cuba menentukan jenis pembolehubah secara eksplisit. Walaupun sintaks membenarkan pengisytiharan pembolehubah pendek, dilambangkan dengan borang tugasan i := 0, ia melarang pengisytiharan jenis eksplisit menggunakan var i = 0.

Untuk menangani sekatan ini, seseorang mesti menggunakan pengisytiharan pembolehubah di luar untuk gelung, seperti yang dilihat dalam contoh:

var i int64
for i = 0; i < 10; i++ {
    // i is of type int64 here
}

Batasan ini berpunca daripada spesifikasi bahasa, yang menyatakan bahawa permulaan penyata hanya boleh mengandungi pengisytiharan pembolehubah pendek menggunakan operator :=.

Walau bagaimanapun, adalah mungkin untuk memintas pengehadan ini dengan menggunakan pemutus jenis dalam penyataan permulaan:

for i := int64(0); i < 10; i++ {
    // i is of type int64 here
}

Dalam keadaan ini , fungsi int64() menghantar literal 0 kepada jenis yang dikehendaki. Walaupun kaedah ini mungkin mencukupi untuk kes mudah, kaedah ini boleh membawa kepada tingkah laku yang tidak dijangka apabila menghantar ungkapan atau nilai kompleks. Oleh itu, adalah dinasihatkan untuk mengisytiharkan pembolehubah jenis tertentu di luar gelung for untuk mengekalkan kejelasan dan mengelakkan kemungkinan perangkap.

Atas ialah kandungan terperinci Bolehkah saya Mengisytiharkan Jenis Pembolehubah Secara Eksplisit dalam Permulaan Gelung Go's?. 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