Luaタイプ

1303 ワード

Luaは動的タイプ言語であり、変数はタイプ定義しない.
Luaには、nil、boolean、number、string、userdata、function、thread、tableの8つの基本タイプがあります.関数typeは、与えられた変数または値のタイプをテストできます.

print(type("Hello world))  --> string
print(type(10*3))    --> number
print(type(print))    --> function
print(type(true))     -->true
print(type(nil))       --> nil
print(type(type(X)))  -->string

Nil
Luaの特殊なタイプで、彼は1つの値しかありません:nil;
グローバル変数が割り当てられていない前のデフォルト値はnilです.
グローバル変数負nilに変数を削除します.
Booleans
2つの値falseとtrueを取ります.
ただし、Luaのすべての値が条件として使用できることに注意してください.制御構造の条件ではfalseとnilが偽である以外は真である.だからLuaは0も空串も本当だと思っています.
Numbers
実数を表す、Luaには整数はない.Luaのnumbersは誤差を心配することなく任意の長い整数を処理することができる.
Strings
文字のシーケンスを指します.luaは8ビットバイトなので、文字列には埋め込まれた0を含む任意の数値文字を含めることができます.これは、任意のバイナリデータを文字列に格納できることを意味します.Luaの文字列は変更できません.新しい変数を作成して、必要な文字列を保存することができます.
Functions
関数は第1のクラス値(他の変数と同じ)であり、関数が変数に格納され、関数のパラメータとしても、関数の戻り値としてもよいことを意味します.この特性は言語に大きな柔軟性を与えた:1つのプログラムは関数を再定義して新しい機能を追加したり、信頼できないコードを実行して安全な実行環境を作成したりすることを避けるために関数を隠すことができ、またこの特性はLuaがオブジェクト向けを実現する上で重要な役割を果たした.
Userdata and Threads
userdataは、CデータをLua変数に格納することができ、userdataはLuaにおいて、付与値と等しい比較を除いて予め定義された動作を有しない.userdataは、アプリケーションまたはC実装ライブラリを使用して作成された新しいタイプを記述するために使用されます.