初版は Lua 5.0 向けに執筆されましたが、後続バージョンとに大きく関連はありますが、いくつかの違いがあります。
4 版は Lua 5.3 が対象で Amazon や他の書店で購入できます。
本を購入することで、Lua プロジェクトをサポートすることもできます。
![]() |
Lua 中でのプログラミングLua | ![]() |
Part I: 言語 Chapter 2: 型と値 |
Lua は動的型付け言語です。この言語では型の定義は存在しません。それぞれの値は自らの型を持っています。
Lua には 8 つの基本型があります。nil、boolean、number、string、userdata、function、thread、および table です。type
関数は指定の値の型名を返します。
print(type("Hello world")) --> string print(type(10.4*3)) --> number print(type(print)) --> function print(type(type)) --> function print(type(true)) --> boolean print(type(nil)) --> nil print(type(type(X))) --> string
X
の値に関係なく、最後の例では "string"
が返されます。なぜなら type
の結果は常に文字列だからです。変数には定義済みの型がありません。どの変数でもどの型の値でも含むことができます。
print(type(a)) --> nil (`a' is not initialized) a = 10 print(type(a)) --> number a = "a string!!" print(type(a)) --> string a = print -- yes, this is valid! a(type(a)) --> function最後の 2 行に注目してください。Lua では、関数はファーストクラスの値です。したがって、他の値と同様に操作できます。(詳細については 第 6 章 をご覧ください。)
通常、1 つの変数を異なる型に使用すると、コードが乱雑になります。ただし、この機能を慎重に使用する場面があります。たとえば、通常の戻り値と例外的な条件を区別するために、nil を使用します。
著作権 © 2003–2004 Roberto Ierusalimschy. All rights reserved. | ![]() |