Pernyataan Bukan Pengisytiharan Badan Luar Fungsi dalam Go
Dalam Go, tidak mungkin untuk mengisytiharkan pembolehubah di luar fungsi menggunakan bukan pengisytiharan kenyataan. Ralat ini berlaku apabila cuba memberikan nilai kepada pembolehubah tidak diisytiharkan, seperti yang dilihat dalam contoh berikut:
test := "This is a test." func main() { fmt.Println(test) test = "Another value" fmt.Println(test) }
Penyelesaian
Untuk mengisytiharkan secara global- pembolehubah boleh diakses dalam Go, gunakan kata kunci var di luar fungsi utama. Nama pembolehubah harus bermula dengan huruf kecil untuk menjadikannya pakej-peribadi (hanya boleh diakses dalam pakejnya).
var test = "This is a test"
Kaedah ini membolehkan anda mengisytiharkan pembolehubah di luar fungsi dan menukar nilainya dalam fungsi dalam pakej yang sama.
Maklumat Tambahan
Kod Contoh
Berikut ialah contoh cara menggunakan pembolehubah pakej-peribadi dan menukar nilainya:
package apitest import ( "fmt" ) var sessionID string func main() { fmt.Println(sessionID) updateSessionID() fmt.Println(sessionID) } func updateSessionID() { sessionID = "NEW_SESSION_ID" }
Dalam contoh ini, sessionID pembolehubah boleh diakses dari mana-mana sahaja dalam pakej apitest. Ia dimulakan kepada rentetan kosong dalam fungsi utama dan dikemas kini dalam fungsi updateSessionID.
Atas ialah kandungan terperinci Mengapakah Saya Tidak Boleh Menetapkan Nilai kepada Pembolehubah Di Luar Fungsi dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!