変数

変数とは、特定の番号のメモリに対し、一時的に名前を付けたものである。変数は定数と違い、代入によって値を変更できる。

作成

作成するには下記の文を記述する。この文は関数内で使用できる。

memory[ 番号 ] name 名前 = 代入する値

この文により、○番のメモリに値が代入され、指定した名前の変数が作成される。

作成する時の番号には0~9999999までの数値、及びautoキーワードを指定できる。autoキーワードを指定した場合、0~9999999以外の任意に指定できない番号で、かつ使用中でない番号が自動で割り振られる。

命名規則

名前には半角の小文字英字( a-z )、またはアンダースコア( _ )を使用できる。ただし、代入する値が論理値の場合は接頭辞を付けなければならない。

代入する値接頭辞
論理値 is_, are_, can_, has_, have_, exist_, exists_, should_
のいずれかを付ける。
論理値以外 不要

論理値を代入する際に接頭辞を付けない。または、論理値以外を代入する際に接頭辞を付けた場合はエラーとなる。

function main()
    memory[ 0 ] name one = 1
    memory[ 1 ] name string = "string"
    memory[ auto ] name is_sample  = true
    
    // 接頭辞がないためエラー
    memory[ 2 ] name sample = true

有効範囲

作成した変数の有効範囲は、文を記述した関数内となる。そのため、別々の関数内であれば同じ名前を使用することができる。

function main()
    memory[ auto ] name a = "a1"

function other_function()
    memory[ auto ] name a = "a2"

参照

参照するには、名前を記述する。

変数は式内で参照でき、評価されるとメモリに格納している値に置き換わる。

function main()
    memory[ 0 ] name a = 0
    memory[ 1 ] name b = 0
    
    memory[ auto ] name c = a + b
    memory[ auto ] name is_equal = a == b
    
    // "c : 3"
    // "a == b : false" を出力
    show( "c : " . c )
    show( "a == b : " . is_equal )

代入

代入するには下記の文を記述する。

名前 = 代入する値

この文により、名前を付けた○番のメモリに値が格納される。

function main()
    memory[ 0 ] name a = 0
    a = 100
    
    // "a = 100" を出力
    show( "a = " . a )

仮引数

変数は関数の仮引数として指定できる。

仮引数として指定する場合、memory[ 番号 ] name 名前と記述する。これにより、その関数を呼び出す時に○番のメモリに実引数が格納され、指定した名前の変数が作成される。