ホームページ >バックエンド開発 >Golang >Go で「関数本体の外に非宣言ステートメントがあります」というエラーが発生するのはなぜですか?

Go で「関数本体の外に非宣言ステートメントがあります」というエラーが発生するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-13 10:41:021003ブラウズ

Why Do I Get

Go の関数本体外の非宣言ステートメント

Go では、通常、関数本体の外で変数を宣言すると、「非宣言」が発生します。 -宣言文が関数本体の外にあります」エラー。これは、Go がスコープ ルールを厳密に適用し、適切なブロック内 (関数内など) で変数を宣言する必要があるために発生します。

慣用的なグローバル変数宣言

作成するには変更可能だが定数ではないグローバルにアクセス可能な変数、構文は:

var test = "This is a test"
  • var キーワードは変数宣言に使用されます。
  • 変数の名前 (この場合はテスト) は、可視性を示すために小文字で始まる必要があります。パッケージ内 (エクスポートされていない)。
  • = 記号は値をvariable.

例:

package apitest

import (
    "fmt"
)

var test = "This is a test" // Globally accessible variable

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

拡張説明

  • 変数の初期化in Functions: 関数内で変数を宣言し、後で := 演算子を使用して値を割り当てます。ただし、:= はグローバル変数宣言には無効です。
  • 型推論: Go は型推論をサポートしており、コンパイラーは初期値に基づいて変数の型を決定できます。
  • パッケージ レベル変数の変更: グローバルにアクセス可能な変数を含むパッケージ レベル変数は、次から変更できます。同じ変数名を使用する関数内 (例: 提供されたコード スニペットのchangeTest(newVal))。
  • Init Function: 複雑なパッケージの初期化のために、Go は init 関数を提供します。 main() の前に実行されます。パッケージの初期状態を設定するために使用できます。

以上がGo で「関数本体の外に非宣言ステートメントがあります」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。