初版は 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. | ![]() |