値および型
Luaは動的型付け言語である。 つまり、変数は型を持たず、値だけが型を持ちます。 この言語に型定義がありません。 すべての値は、値自体が型を保持しています。
Lua のすべての値はファースト・クラスの値 です。 つまり、すべての値は変数に格納でき、 他の関数に引数として渡すことができ、戻り値として返すことができます。
nzLua には、NULL、ブール、数値、ストリング、関数、および表 の、6 つの基本型があります。
NULL は、null 値の型で、 その主な性質は他のいかなる値とも異なることであり、通常、有用な値がないことを表します。 Lua コマンド解析機能は、 キーワード null が標準 Lua キーワードのnil に相当するよう、nzLua 向けに拡張されました。 SQL の NULL 値と異なり、null (および nil) はそれ自体と等しく、 そのため、null == null は true を返します。
ブール は、false と true の値を持つ型です。 null とfalse は、両方とも条件判断は false になり、他の値は true になります。
数値 は実数 (倍精度浮動小数点数) を表します。
ストリング は文字の配列を表します。 Luaは8ビットクリーンです:文字列は、埋め込まれたゼロ('\0')を含む、任意の8ビット文字を含むことができます。
表 型は、連想配列を実装します。すなわち、数値だけでなく任意の値 (null を除く) で 順にインデックス付けできる配列です。 表は異種混合にできます。すなわち、すべての型の値 (null を除く) を含めることができます。 テーブルはLuaにおける唯一のデータ構造化メカニズムであり、通常の配列、シンボル・テーブル、集合、レコード、グラフ、ツリーなどを表現するために使用できる。 を表す
レコードの場合、Luaはフィールド名をインデックスとして使用する。 この言語は、'a["'name'"] の構文上の糖分として 'a.name提供することで、この表現をサポートしています。 Luaでテーブルを作成するには、いくつかの便利な方法がある。
インデックスと同様に、表フィールドの値は、任意の型 (null を除く) にできます。 特に、関数がファースト・クラスの値であるため、表フィールドには関数を含めることができます。 このように、テーブルはメソッドを運ぶこともできる。
表の値と関数の値はオブジェクト です。変数は実際にはこれらの値を持たず、 それらを参照 しているだけです。 代入、パラメーターの引き渡し、および関数からの戻りは、 常にそのような値への参照を扱います。これらの操作ではどのようなコピーも行われません。