Rumah >pembangunan bahagian belakang >Golang >Mengapa Saya Tidak Boleh Mengisytiharkan Pembolehubah Di Luar Fungsi dalam Go?

Mengapa Saya Tidak Boleh Mengisytiharkan Pembolehubah Di Luar Fungsi dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-11-29 20:00:15901semak imbas

Why Can't I Declare a Variable Outside a Function in Go?

Pernyataan Bukan Pengisytiharan Di Luar Badan Fungsi dalam Go

Dalam Go, pernyataan bukan pengisytiharan di luar badan fungsi mencetuskan ralat. Ini diperhatikan dalam coretan kod:

package apitest

import (
    "fmt"
)

test := "This is a test."

func main() {
    fmt.Println(test)
    test = "Another value"
    fmt.Println(test)
}

Kod ini cuba mengisytiharkan pembolehubah di luar fungsi main() dan memberikan nilai kepadanya. Walau bagaimanapun, Go tidak membenarkan pernyataan bukan pengisytiharan di luar badan fungsi.

Pendekatan Idiomatik

Cara Go yang idiomatik untuk mengisytiharkan pembolehubah boleh diakses dari mana-mana sahaja dalam pakej tetapi tidak semestinya pemalar ialah:

var test = "This is a test"
  • Menggunakan kata kunci var mengisytiharkan pembolehubah bernama ujian.
  • Huruf kecil "t" menunjukkan bahawa pembolehubah hanya boleh dilihat dalam pakej (tidak dieksport).
  • Pengendali tugasan = memulakan pembolehubah dengan nilai "Ini adalah ujian".

Ciri Pembolehubah

Ujian pembolehubah:

  • Boleh diakses dari mana-mana sahaja dalam pakej paling baik.
  • Boleh ditugaskan semula, menjadikannya boleh diubah.

Nota Tambahan

  • Daripada ujian var = "Ini adalah ujian", anda boleh menulis var rentetan ujian = "Ini ialah ujian", tetapi ia tidak dianggap sebagai Go yang idiomatik.
  • Go juga menyediakan fungsi init untuk pemulaan pakej kompleks atau menyediakan keadaan pakej. Init dipanggil sebelum larian utama.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mengisytiharkan Pembolehubah Di Luar Fungsi dalam Go?. 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