Pernyataan Bukan Pengisytiharan Badan Fungsi Luar dalam Go
Dalam Go, mengisytiharkan pembolehubah di luar badan fungsi biasanya membawa kepada "bukan -pernyataan pengisytiharan di luar ralat badan fungsi. Ini berlaku kerana Go menguatkuasakan peraturan skop dengan tegas, memerlukan pembolehubah diisytiharkan dalam blok yang sesuai (cth., di dalam fungsi).
Idiomatik Global Variable Declaration
Untuk mencipta pembolehubah boleh diakses secara global yang boleh diubah tetapi bukan pemalar, sintaksnya ialah:
var test = "This is a test"
Salin selepas log masuk
- Kata kunci var digunakan untuk pengisytiharan pembolehubah.
- Nama pembolehubah (ujian dalam kes ini) hendaklah bermula dengan huruf kecil untuk menunjukkan keterlihatannya dalam pakej (tidak dieksport).
- Tanda = memberikan nilai kepada pembolehubah.
Contoh :
package apitest
import (
"fmt"
)
var test = "This is a test" // Globally accessible variable
func main() {
fmt.Println(test)
test = "Another value"
fmt.Println(test)
}
Salin selepas log masuk
Penjelasan Lanjutan
-
Permulaan Pembolehubah dalam Fungsi: Di dalam fungsi, anda boleh mengisytiharkan pembolehubah dan tetapkan nilai kemudian menggunakan operator :=. Walau bagaimanapun, := tidak sah untuk pengisytiharan pembolehubah global.
-
Inferens Jenis: Go menyokong inferens jenis, di mana pengkompil boleh menentukan jenis pembolehubah berdasarkan nilai awalnya.
-
Menukar Pembolehubah Tahap Pakej: Pembolehubah peringkat pakej, termasuk pembolehubah yang boleh diakses secara global, boleh ditukar dari dalam fungsi menggunakan nama pembolehubah yang sama (cth., changeTest(newVal) dalam coretan kod yang disediakan) .
-
Fungsi Init: Untuk permulaan pakej kompleks, Go menyediakan fungsi init, yang dilaksanakan secara automatik sebelum main(). Ia boleh digunakan untuk menyediakan keadaan awal untuk pakej.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Pernyataan Bukan Pengisytiharan Di Luar Badan Fungsi' dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!