Euphoria-variables

提供:Dev Guides
移動先:案内検索

陶酔-変数

変数は、値を保存するために予約されたメモリの場所に他なりません。 これは、変数を作成するときに、メモリ内にいくらかのスペースを確保することを意味します。

変数のデータ型に基づいて、インタプリタはメモリを割り当て、予約メモリに保存できるものを決定します。 したがって、異なるデータ型を変数に割り当てることにより、これらの変数に整数、小数、または文字を格納できます。 Euphoriaのデータ型については、別の章で説明しています。

これらのメモリ位置は変数と呼ばれます。なぜなら、それらの値は寿命の間に変更できるからです。

可変宣言

メモリ空間を確保するには、Euphoria変数を明示的に宣言する必要があります。 したがって、変数の宣言は、値を変数に割り当てる前に必須です。

変数宣言には、型名の後に宣言されている変数のリストが続きます。 たとえば-

integer x, y, z

sequence a, b, x

変数を宣言するときは、変数に名前を付け、プログラムの実行中に変数に合法的に割り当てられる値の種類を定義します。

変数を宣言するという単純な行為は、変数に値を割り当てません。 値を割り当てる前に読み取ろうとすると、_ "変数xyzに値が割り当てられたことがない" _として、Euphoriaは実行時エラーを発行します。

値の割り当て

等号(=)は、変数に値を割り当てるために使用されます。 変数は次の方法で割り当てることができます-

変数名=変数値

たとえば-

#!/home/euphoria/bin/eui

-- Here is the declaration of the variables.
integer counter
integer miles
sequence name

counter = 100 -- An integer assignment
miles = 1000.0 -- A floating point
name = "John" -- A string ( sequence )

printf(1, "Value of counter %d\n", counter )
printf(1, "Value of miles %f\n", miles )
printf(1, "Value of name %s\n", {name} )

ここで、100、1000.0、および「John」は、それぞれ_counter miles_、および_name_変数に割り当てられた値です。 このプログラムは、次の結果を生成します-

Value of counter 100
Value of miles 1000.000000
Value of name John

変数を初期化することを忘れないように、またそれがコードを読みやすくするために、宣言と代入を組み合わせることができます-

integer n = 5

これは次と同等です-

integer n
n = 5

識別子の範囲

識別子のスコープは、どのコードがそれにアクセスできるかの説明です。 識別子の同じスコープ内のコードはその識別子にアクセスでき、識別子がアクセスできないのと同じスコープ内のコードはアクセスできません。

変数のスコープは、変数が宣言される場所と方法によって異なります。

  • for、while、loop または switch 内で宣言されている場合、そのスコープは宣言で始まり、それぞれの end ステートメントで終了します。
  • if ステートメントでは、スコープは宣言から始まり、次の else、elsif 、または end if ステートメントで終わります。
  • 変数がルーチン内で宣言されている場合、変数のスコープは宣言で始まり、ルーチンの終了ステートメントで終了します。 これはプライベート変数として知られています。
  • 変数がルーチンの外部で宣言されている場合、そのスコープは宣言で始まり、宣言されたファイルの終わりで終わります。 これはモジュール変数として知られています。
  • スコープ修飾子を持たない*定数*のスコープは、宣言で始まり、宣言されたファイルの終わりと終わりです。
  • スコープ修飾子を持たない enum のスコープは、宣言で始まり、宣言されたファイルの終わりと終わりです。
  • スコープ修飾子を持たないすべての procedures、functions および types のスコープは、ソースファイルの先頭から始まり、宣言されているソースファイルの末尾で終わります。

スコープ修飾子を持たない定数、列挙型、モジュール変数、プロシージャ、関数、および型は、 locals と呼ばれます。 ただし、これらの識別子には、宣言の前にスコープ修飾子を付けることができます。これにより、スコープは宣言されているファイルを超えて拡張されます。

  • キーワード global が宣言の前にある場合、これらの識別子の範囲はアプリケーション全体に広がります。 アプリケーションファイル内のどこからでもコードによってアクセスできます。
  • キーワード public が宣言の前にある場合、スコープは、識別子が宣言されているファイルを明示的に含むファイル、または_public_宣言を含むファイルを_public_が順に含むファイルを含むすべてのファイルに拡張されます。
  • キーワード export が宣言の前にある場合、スコープは、識別子が宣言されているファイルを直接含むファイルのみに拡張されます。

Euphoriaファイルを別のファイルに*インクルード*すると、スコープ修飾子を使用して宣言された識別子のみが_include_を実行しているファイルにアクセスできます。 インクルードファイル内の他の宣言は、_include_を実行するファイルには見えません。