Mengapakah Saya Tidak Boleh Menetapkan Nilai kepada Pembolehubah Di Luar Fungsi dalam Go?

Patricia Arquette
Lepaskan: 2024-11-17 07:12:03
asal
549 orang telah melayarinya

Why Can't I Assign a Value to a Variable Outside of a Function in Go?

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)
}
Salin selepas log masuk

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"
Salin selepas log masuk

Kaedah ini membolehkan anda mengisytiharkan pembolehubah di luar fungsi dan menukar nilainya dalam fungsi dalam pakej yang sama.

Maklumat Tambahan

  • Sintaks pengisytiharan pendek := hanya dibenarkan dalam badan fungsi.
  • Pembolehubah diisytiharkan dengan var boleh daripada sebarang jenis, termasuk jenis bukan primitif seperti peta dan struct.
  • Go juga menyediakan fungsi init, yang dipanggil sebelum fungsi utama dan boleh digunakan untuk pemulaan pakej.

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"
}
Salin selepas log masuk

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!

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