ここではLUAスクリプティングに役立つ基本的な文法を紹介します。
次のコードはHello,World.をコマンドウィンドウに表示します。
a = "Hello,"
b = "World."
print(a .. b)
NOTは~として表現します。次のコードで二つ目のアサーションはエラーを返します。
nothing = nil
assert(nothing == nil)
assert(nothing ~= nil)
次のprint文はhello.を返してしまいます。hello()関数内で定義された変数aisatsuはグローバルなスコープを持っています。
function hello()
aisatsu = "hello."
end
hello()
print(aisatsu)
local変数として宣言することで次のprint文はnilを返すようになります。
function hello()
local aisatsu = "hello."
end
hello()
print(aisatsu)
次のコードの中で#variablesは変数variablesの配列数を意味しています。
variables = {}
variables[#variables + 1] = 1
variables[#variables + 1] = 2
variables[#variables + 1] = 4
variables[#variables + 1] = 8
variables[#variables + 1] = 16
variables[#variables + 1] = 32
variables[#variables + 1] = 64
for i = 1, #variables do
print(variables[i])
end
このコードは以下の結果を返します。
1
2
4
8
16
32
64
配列はテーブル化することも出来ます。
days = {}
days["monday"] = 1
days["tuesday"] = 2
days["wednesday"] = 3
for index,day in pairs(days) do
print(day)
end
次のようにクラスを作成してインスタンス化することが出来ます。
Human = {}
Human.new = function(name)
self = {}
self.answerYourName = function()
return name
end
return self
end
human = Human.new("Wags")
print(human.answerYourName())
実装の隠蔽は次のように行えます(上のコード例でもnameは隠蔽されています)。ローカル関数answer()は、それを呼び出す行を記述する前に定義しなければいけないことに注意してください。
Human = {}
Human.new = function(new_name)
self = {}
local name = new_name
local answer = function()
print(name)
end
self.answerYourName = function()
answer()
end
return self
end
human = Human.new("Wags")
human.answerYourName()