首頁 > 後端開發 > Golang > 為什麼我不能給 Go 中函數外部的變數賦值?

為什麼我不能給 Go 中函數外部的變數賦值?

Patricia Arquette
發布: 2024-11-17 07:12:03
原創
626 人瀏覽過

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

Go 中函數體外部的非宣告語句

在 Go 中,不可能使用非宣告在函數外部宣告變數陳述。當嘗試為未宣告的變數賦值時會發生此錯誤,如下例所示:

test := "This is a test."

func main() {
    fmt.Println(test)
    test = "Another value"
    fmt.Println(test)
}
登入後複製

解決方案

要聲明全域- Go 中可存取變量,請在main 函數之外使用var 關鍵字。變數的名稱應以小寫字母開頭,以使其成為包私有的(只能在其包內存取)。

var test = "This is a test"
登入後複製

此方法可讓您在函數外部宣告變數並在函數內變更其值在同一個套件中。

其他資訊

  • := 短聲明語法僅允許在函數體內使用。
  • 使用以下方式宣告的變數var 可以是任何類型,包括映射和結構體等非原始類型。
  • Go 也提供了 init 函數,該函數在 main 函數之前調用,可用於套件初始化。

範例程式碼

以下是如何使用套件私有變數並更改其值的範例:

package apitest

import (
    "fmt"
)

var sessionID string

func main() {
    fmt.Println(sessionID)
    updateSessionID()
    fmt.Println(sessionID)
}

func updateSessionID() {
    sessionID = "NEW_SESSION_ID"
}
登入後複製

在此範例中,sessionID可以從apitest 包中的任何位置存取變數。它在主函數中初始化為空字串,並在 updateSessionID 函數中更新。

以上是為什麼我不能給 Go 中函數外部的變數賦值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板