Lua入門学習ノート

2676 ワード

最近はCocos 2 d-x+Luaを使ってゲームを開発しています.ゲームの主なロジックはLuaに書かれますが、これまでLuaに触れたことがありません.以下は私がまとめた入門ノートです.
演算子
論理演算子
と:andまたは:or非:not
論理判断はfalseとnilの場合のみ偽であり,残りはすべて真である.orとandは最初の遮断値を返します.
LuaにはC言語の三元記号(x?a:b)はありませんが、代替案(x and a)or bがあります.なお、上記のスキームは、xがtrue、aがfalse、bがtrueの場合、三元文字の結果とは逆である.
関係演算子
等しくない:~=タイプと値が等しい:==数値と文字列タイプのみが比較時に判定された値であり、残りのデータ型は参照されます.
その他の演算子
文字列のコネクタ:..2つの文字列を+で接続すると、metatableのadd演算によって決定される数値タイプに自動的に変換されて加算されます.
長さ演算子:#文字列とtableの長さを計算します.
コロン演算子:Luaの構文糖で、メソッドのselfパラメータ宣言とメソッドの明示的な呼び出しを省く.詳細:http://www.lua.org/pil/16.html.
table
tableは配列と見なすことができ、配列の下付きは他の多くの言語とは異なり、その下付きは1から始まる.
#演算子は、整数としてマークされているすべての要素の個数のみを統計します.
pairsとは異なり、ipairsは1から始まる連続ダウンスケールのみを遍歴し、出力順序を保証する.
t[2]とt[2]は異なるレコードを表す
 
  
t={["2"]=2, [2]=2.2,}

tableは最後に1つの区切り記号(、または;)を残すことができます.前条のtを参照すると,公式の理由はtableの自動生成の便宜上(Luaのtable構成表の自動生成を容易にするため)である.
 
  
x = 1
t = { x=1.1, [x]=1 }

最初の表示
 
  
t["x"] = 1.1

2番目の表示
 
  
t[1] = 1

metatable
metatableのタイプはtableです.metatableのkeyはイベント(操作)タイプです.metatableのvalueは対応する関数(メソッド)であり、metamethodとも呼ばれる.
せいぎょりゅう
returnおよびbreak文は、文ブロックの最後の文、すなわちendの前にのみ書くことができる.
forループのループ変数は内部変数であり,ループが終了すると,これ以上使用できなくなる.
sublime text 2コンパイル
私は普段Sublime Text 2でLuaスクリプトを作成していますが、そのコンパイルLuaの設定は以下の通りです.Luaを生成します.sublime-buildファイルC:UsersYOUR_USER_NAMEAppDataRoamingSublime Text 2PackagesLuaディレクトリの下、ファイル内容は
 
  
{
    "cmd": ["lua", "$file"],
    "file_regex": "^(?:lua:)?[\t ](...*?):([0-9]*):?([0-9]*)",
    "selector": "source.lua"
}

設定後、ctrl+Bでコンパイルして実行します.以上がpc上の構成です.
MacでインストールLuaをコンパイルする必要がある
 
  
curl -R -O http://www.lua.org/ftp/lua-5.2.2.tar.gz
tar zxf lua-5.2.2.tar.gz
cd lua-5.2.2
make macosx test
sudo make install

次にsublime text tools->build system->new build systemにLuaを新規作成します.sublime-build、内容は

 "cmd": ["/usr/local/bin/lua", "$file"], 
 "file_regex": "^(...*?):([0-9]*):?([0-9]*)", 
 "selector": "source.lua" 
}

Macのsublime text上でLuaを龚+Bでコンパイルできます.
その他
Lua文の後のセミコロンあってもなくてもいい.
変数宣言は、グローバル変数として必要でない限り、できるだけlocalを使用して宣言します.
パラメータリストとして、関数でarg(タイプtable)でargを取得する追加のキーnがあり、パラメータの個数を表す.