Lua

注意点

  • 条件式の真偽値では 0 や空白文字は偽と判断されない。
    未定義値の nil と、偽を示す false のみが偽の値に判定され、他は全て真になる。

  • require 文で指定するファイル名はROでは拡張子まで書くが、
    www.lua.org で配布されている lua.51.exe などでは
    拡張子を省略しないとファイルが見つからないと言われる。
    Ragnarokプログラムフォルダにある lua.exe では拡張子そのままでよい。

リンク

予約語

      and       break     do        else      elseif
      end       false     for       function  if
      in        local     nil       not       or
      repeat    return    then      true      until     while
and
論理演算子:AND
break
ループ制御:ループ脱出
do
ループ制御区切り
else
条件分岐else
elseif
条件分岐elseif
end
条件分岐やループ、関数などの終端
false
真偽値:偽
for
ループ制御:for文
function
関数の開始
if
条件分岐
in
ループ制御:テーブル区切り
local
ローカル変数宣言
nil
nil値
not
論理演算子NOT
or
論理演算し:OR
repeat
ループ制御:次のループにジャンプ
return
関数
then
条件分岐区切り
true
真偽値:真
until
条件分岐:否定分岐
while
ループ制御:while文

演算子

A + B加算
A - B減算
A * B乗算
A / B除算
A % B剰余
A ^ B累乗
A = B代入
A,B,C = a,b,c多重代入
A,B = B,A値の交換
A == B等価
A ~= B不等価
A < B
A > B
A <= B
A >= B
優先順位(高)
^
not	#	- (単独)
*		/	%
+		-
..
and
or
優先順位(低)

構文

  • コメント文
    行頭に--を入れることで判定される。
    -- 行末までがコメントに解釈される
    
    --[[
    行単位のコメントに解釈される
    --]]
  • if 文
    if 条件式 then
    	-- 条件式が真
    elseif 条件式2 then
    	-- 条件式2が真
    else
    	-- どれにも当てはまらない
    end

for 文

  • テーブル値の取り出し
    -- ipairs は table 内の 1〜n までの数字のキーを昇順に取り出す。
    -- 0以下のキーや、文字キーは無視される。
    for i,v in ipairs(table) do
    	-- table テーブル変数
    	-- i テーブルキー
    	-- v キーに対応するテーブルの要素 table[i]
    end
    
    -- pairs は table 内の全てのキーを取り出す。順番は決まっていない。
    -- 0以下のキーや、文字キーも受け取る。
    for i,v in pairs(table) do
    	-- table テーブル変数
    	-- i テーブルキー
    	-- v キーに対応するテーブルの要素 table[i]
    end
  • インクリメント
    for i = 1,10 do
    	-- 初期値1 終了10 ループ毎に +1
    	-- i に 1,2,3,4,5,6,7,8,9,10 が順に格納される
    end
    
    for i = 1,10,2 do
    	-- 初期値1 終了10 ループ毎に +2
    	-- i に 1,3,5,7,9 が格納される
    end

ファイル入出力

file = "test.txt"
str  = "string"

fp = io.open(file,"w")
if(fp == nil) then
	exit
end
fp:write( string.format("%s\n",str) )
fp:close()

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規新規下位 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-05-23 (水) 22:32:16 (1858d)