Go で関数の外の変数に値を代入できないのはなぜですか?

Patricia Arquette
リリース: 2024-11-17 07:12:03
オリジナル
551 人が閲覧しました

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)
}
ログイン後にコピー

Solution

グローバルに宣言するには- Go でアクセス可能な変数を使用するには、main 関数の外で var キーワードを使用します。変数名は、パッケージプライベート (パッケージ内でのみアクセス可能) にするために小文字で始まる必要があります。

var test = "This is a test"
ログイン後にコピー

このメソッドを使用すると、関数の外で変数を宣言し、関数内でその値を変更できます。同じパッケージ内にあります。

追加情報

  • := 短い宣言構文は関数本体内でのみ許可されます。
  • で宣言された変数var は、マップや構造体のような非プリミティブ型を含む任意の型にすることができます。
  • Go は、main 関数の前に呼び出され、パッケージの初期化に使用できる init 関数も提供します。

サンプル コード

パッケージ プライベート変数を使用してその値を変更する方法の例を次に示します。

package apitest

import (
    "fmt"
)

var sessionID string

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

func updateSessionID() {
    sessionID = "NEW_SESSION_ID"
}
ログイン後にコピー

この例では、セッション ID変数には、apitest パッケージ内のどこからでもアクセスできます。これは main 関数で空の文字列に初期化され、updateSessionID 関数内で更新されます。

以上がGo で関数の外の変数に値を代入できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート