Rumah > pembangunan bahagian belakang > Golang > Mengapa Saya Mendapat Ralat 'Pernyataan Bukan Pengisytiharan Di Luar Badan Fungsi' dalam Go?

Mengapa Saya Mendapat Ralat 'Pernyataan Bukan Pengisytiharan Di Luar Badan Fungsi' dalam Go?

Patricia Arquette
Lepaskan: 2024-11-13 10:41:02
asal
968 orang telah melayarinya

Why Do I Get

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!

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