標準出力
print("文字列")
コメント
行末コメント
-- ここから行末コメント
複数行コメント
--[[ この部分がコメント になる ]]
文字列
Luaの文字列はダブルクォーテーションまたはシングルクォーテーションで囲む。
ダブルクォーテーションとシングルクォーテーションの違いは無い。
'文字列' "文字列"
変数
Luaでは、変数を宣言せずに使用することが出来る。
グローバル変数
x = 値
変数に何も付けずに代入式を記述すれば、グローバル変数になる。
ローカル変数
local x = 値
変数に loacl を付けると、ローカル変数になる。
ローカル変数のスコープはブロックとなる。
ローカル変数とグローバル変数で同一の名前の変数がある場合はローカル変数が優先。
テーブル
Luaでは、データをまとめて扱う仕組みを「テーブル」と呼ばれる機構で扱う。
つまるところテーブルとは連想配列。
テーブルの作成
table = {}
テーブルの代入
table["key"] = "Lua" table[1] = "hoge"
テーブルのキーは文字列または数字が使える。
演算子
算術演算子
+ | 加算 |
- | 減算 |
* | 積算 |
/ | 除算 |
^ | 累乗 |
% | 剰余 |
比較演算子
< | 小なり |
> | 大なり |
<= | 以下 |
>= | 以上 |
== | 等しい |
~= | 異なる |
論理演算子
and | 論理積 |
or | 論理和 |
not | 否定 |
連結演算子
.. | 文字列連結 |
条件分岐
if文
if 式 then 処理1 elseif 式2 then 処理2 else 処理2 end
Luaのifは式の値がnilまたはfalse以外の場合に真となる。
then は省略不可。
switch文
Luaにswitch文は存在しない。
繰り返し
for文
for 初期値, 終了値, 増加量 do 処理 end
増加量は省略可。省略した場合は、増加量は1になる。
while文
while 式 do 処理 end
repeat文
repeatはdo 〜 while と同様。
repeat 処理 until 式
break文
繰り返し処理を途中で抜けるにはbreakを使う。ただし、Luaのbreakはブロックの最後にしか書けない。
むりやりブロックの最後にしたい場合は下記のように空ブロックを作ると良い。
/p>
do break end
continue文
Luaにcontinue文は存在しない。
関数
Luaの関数は変数として扱える。いわゆるファーストクラスオブジェクト。
関数の定義
function 関数名(引数1, 引数2, ..) 関数の処理 return 戻り値 end
戻り値がない場合は returnを省略可。
複数戻り値
function 関数名(引数1, 引数2, ..) 関数の処理 return 戻り値1, 戻り値2, 戻り値3 end -- 複数の戻り値を受け取る ver1, ver2, ver3 = 関数名(n)
コルーチン
--コルーチン function func() print("コルーチン開始") -- 処理を中断(1回目) coroutine.yield "処理を中断1" print("ここから再開") -- 処理を中断(2回目) coroutine.yield "処理を中断2" print("次はここから再開") return "コルーチン終了" end -- コルーチンを作成 local co = coroutine.wrap(func) -- 1回目呼出し print(co()) print("----------------------") -- 2回目呼出し print(co()) print("----------------------") -- 3回目呼出し print(co())
クラス
Luaにクラスは存在しない。