値および型

Luaは動的型付け言語である。 つまり、変数は型を持たず、値だけが型を持ちます。 この言語に型定義がありません。 すべての値は、値自体が型を保持しています。

Lua のすべての値はファースト・クラスの値 です。 つまり、すべての値は変数に格納でき、 他の関数に引数として渡すことができ、戻り値として返すことができます。

nzLua には、NULLブール数値ストリング関数、および の、6 つの基本型があります。

NULL は、null 値の型で、 その主な性質は他のいかなる値とも異なることであり、通常、有用な値がないことを表します。 Lua コマンド解析機能は、 キーワード null が標準 Lua キーワードのnil に相当するよう、nzLua 向けに拡張されました。 SQL の NULL 値と異なり、null (および nil) はそれ自体と等しく、 そのため、null == nulltrue を返します。

ブール は、falsetrue の値を持つ型です。 nullfalse は、両方とも条件判断は false になり、他の値は true になります。

数値 は実数 (倍精度浮動小数点数) を表します。

ストリング は文字の配列を表します。 Luaは8ビットクリーンです:文字列は、埋め込まれたゼロ('\0')を含む、任意の8ビット文字を含むことができます。

型は、連想配列を実装します。すなわち、数値だけでなく任意の値 (null を除く) で 順にインデックス付けできる配列です。 表は異種混合にできます。すなわち、すべての型の値 (null を除く) を含めることができます。 テーブルはLuaにおける唯一のデータ構造化メカニズムであり、通常の配列、シンボル・テーブル、集合、レコード、グラフ、ツリーなどを表現するために使用できる。 を表す

レコードの場合、Luaはフィールド名をインデックスとして使用する。 この言語は、'a["'name'"] の構文上の糖分として 'a.name提供することで、この表現をサポートしています。 Luaでテーブルを作成するには、いくつかの便利な方法がある。

インデックスと同様に、表フィールドの値は、任意の型 (null を除く) にできます。 特に、関数がファースト・クラスの値であるため、表フィールドには関数を含めることができます。 このように、テーブルはメソッドを運ぶこともできる。

表の値と関数の値はオブジェクト です。変数は実際にはこれらの値を持たず、 それらを参照 しているだけです。 代入、パラメーターの引き渡し、および関数からの戻りは、 常にそのような値への参照を扱います。これらの操作ではどのようなコピーも行われません。