Lua入門 - Luaの変数と型

変数

変数(variable)とは、扱われるデータを、ある一定期間記憶し、利用できるようにするためにデータに名前をつけたものです。Luaにも、他の多くのプログラミング言語と同じように変数があります。
ここでは、分かりやすくするために、変数をさまざまなデータを入れることが出来る「」のようなものだと考えてください。Luaでは変数は宣言なしに利用することが出来ます。これはC言語などとは大きな違いのひとつです。

変数を作ったら、その変数に何かデータを入れておかなければいけません。そうでなければせっかく変数を作っても意味がないですから。
変数を定義し、変数にデータを入れるには、代入文と呼ばれる文を書きます。代入文は以下の構文で書きます。

代入文の構文

アクセス修飾子(省略可能) 変数名 = 値

アクセス修飾子は現段階では気にしなくて結構です。とりあえず何も書かないことにしましょう。
変数名は文字通り、この代入文で値を入れる変数の名前です。この変数の名前には、文法で説明したようにアルファベット大文字小文字と数字、アンダースコアが利用でき、1文字目はアルファベットまたはアンダースコアにするのでした。また、予約語は変数名には使用できないのでした。
は変数にセットする値です。これには、いわゆる普通の数字や文字列は当然として、他に関数なども指定することが出来ます。

Luaの型

Luaの特徴で説明したとおり、Luaは動的型付けのため、変数は型情報を持たず、したがって変数にはどのような型の値も代入できますただし、それぞれの値自体には型が存在します
Luaには8つの型があります。

  1. 実数型
    数を表します。多くのプログラミング言語とは異なり、Luaは整数と小数の区別をしません。整数も小数も同じ実数型の値として処理されます。
    Luaの実数型は、内部表現的には倍精度浮動小数点型(double型)となっています。
     
  2. 文字列型
    文字列を表します。Luaの文字列型はASCII文字セットのみを扱えます。したがって日本語は利用できません。
    文字列型の値は、シングルクォーテーション(')またはダブルクォーテーション(")で括ります。
    また、C言語などと同様、エスケープシーケンスを利用することが出来ます。Luaで利用可能なエスケープシーケンスの一覧は、このページの末尾を参照してください。
     
  3. 論理型
    いわゆるブール型(bool)です。truefalseの2つの値のみを持ちます。条件分岐などで非常に重要になります。
     
  4. テーブル型
    Luaには純粋な意味での配列はなく、連想配列が用意されています。詳細は配列とテーブルで説明しています。
     
  5. 関数型
    Luaは関数をも変数に代入することが出来ます。実際にはその実体は関数オブジェクトへの参照で、C言語などの関数ポインタに相当します。
     
  6. スレッド型
    実行されているプログラムのそれぞれのスレッドを表す型です。これはコルーチンの実装によるマルチタスクに用いられます。
     
  7. nil型
    "何もない"ことを表す型です。有意な値がないことをあらわし、条件判断ではfalseと同じく偽と判定されます。
    一般的なプログラミング言語におけるnullに相当します。
     
  8. ユーザー定義型
    任意のC言語プログラムのデータをLuaの変数に格納するための型です。実体は生のメモリブロックに相当し、Lua側では代入と等価比較以外の演算は用意されません。
    ただし、メタテーブルを用いてユーザー側で演算を定義することが可能です。外部のCプログラムとの連携に利用されます。

 

Luaで利用可能なエスケープシーケンスの一覧

以下の表はLuaで利用可能なエスケープシーケンスです。文字列リテラル内で改行など特殊文字を利用する場合、以下のエスケープシーケンスを代わりに書く決まりになっています。

エスケープシーケンス 内容
\0 ヌル文字
通常、文字列リテラルの終端文字として扱われる。
\a ベル
\b バックスペース
\f 改ページ
\n 改行
\r 復帰
\t 水平タブ
\v 垂直タブ
\\ バックスラッシュ
\" ダブルクォーテーション
\' シングルクォーテーション
\ddd 文字コード直接指定
dddには10進数3桁のASCII文字コードを指定する。

 

最終更新:2016年11月27日 03:04