Lua言語学習
9483 ワード
命名規則の違いパスカル命名法は主にクラスと方法に命名され、各単語の頭文字はすべて大文字で、残りの小文字は です.アルパカの命名法は主に変数に命名され、最初の単語はすべて小文字で、残りの単語は頭文字が大文字で、残りの小文字は です.
SciTEエディタ使用マニュアルは、に保存する必要があります.lua接尾辞ファイル 空白ファイルは 保存できません.を保存してから運転できる(F 5を押す) 変数#ヘンスウ# luaでは変数にデータ型を指定する必要はなく、格納値に基づいて を決定する. LUAセミコロン末尾 は不要 number,数値タイプ,格納整数および小数 booleanブールタイプ、trueとfalseの2つの値 のみ string文字列タイプ、二重引用符、単一引用符のいずれも可能、lua種charなしタイプ 単一文字でもtypeはstringタイプ を返します. type()メソッドでは、変数のタイプ を取得できます. C#種、floatタイプの数の末尾にあるf末尾 注釈は3種類ある単一行注釈 複数行注釈は3種類あります
演算子 Luaには++と- はありません C#の+番号には、数学的加算と文字列接続の機能 があります. Luaは数学的な意味しかなく、文字列接続は である. luaには複合付与演算子、すなわち+=,-=これらの はありません. luaの関係演算子は です. luaの和または非 ぶんきこうぞう c#はluaの中の包み方とは異なり、luaは else構造 注意thenキーワードはifの下に 表示されます. else if構造 luaでelseifの2つの単語はつながっていて、真ん中にスペースがありません luaにswitch文がない じゅんかんこうぞう luaにdoendで符号体 を包む luaでカンマで区切り、C#でセミコロン while文、doとendでコード体 を包む lua言語にはdo while文はありませんが、新しい文 があります. untilの役割はwhileとは正反対で、満たされていない場合にのみ実行され、満たされていない場合には終了します-luaにはbreakキーワードしかなく、c#にはbreakとcontinueの2つのキーワードがあります はいれつ C#バージョンは、固定データ型の配列 のみを格納できます. luaの配列は、複数の異なるタイプのデータ を格納することができる. C#でループ配列、下付きは0から luaでは配列をループし、下付きは1から、配列長を取るには が必要である. C#の配列長は固定されていますが、Luaの配列長は固定されていません.配列を宣言した後も、後続の下付き位置に値 を追加できます.
関数#カンスウ# lua言語では、スクリプトの作成順序で関数を定義してから、 を呼び出すことができます. C言語では、関数伝達は を実現するために委任する必要がある. Lua言語には依頼概念がなく, を直接パラメータとして渡すことができる.
スコープの比較 C#のグローバル変数宣言が完了すると、手動で付与値を初期化しなくてもデフォルト値があり、int型は0、参照型はnull となります.ただし、ローカル変数の宣言が完了すると、値を割り当てる必要があります.そうしないと、 は使用できません. Lua言語の変数は、デフォルトではすべてグローバル変数であり、関数内に宣言された変数であってもグローバル変数 である.は、関数内の変数 にアクセスする前に、関数を一度実行する必要がある.関数内の変数をlocalと宣言できる場合、 にアクセスできません.外部で定義された変数は、localであっても関数内でC#のprivateのようなフィールドにアクセスでき、クラスでは にアクセスできます. luaのデフォルト関数はグローバル関数であり、ローカル関数に設定するにはlocalを使用する必要があります.privateと同様に、外部スクリプトのみにアクセスする場合に制限されます. 文字列の表現には3つの表現形式があります を二重引用符で囲む を引用符で囲むは2つの中括弧で を包む.
注意事項 Luaでは二重引用符、一重引用符の効果はほぼ同じで、中括弧は比較的特殊で、元のフォーマット出力 に属する. lua言語では文字列が接続され、 である.
共通エスケープ 」 C#と同じ意味 常用string操作 注意luaに内蔵されているクラスと方法はすべて小文字 です.変換大文字小文字 文字列反転 文字列長 文字列反転 文字列置換 置換回数書き込みがない場合は、デフォルトではすべて置換 である.
文字列をフォーマットするには、c#に2つの方法があります. 文字列と変数 を+番号で接続第2の態様 プレースホルダ方式 U 3 D種ではCWなしで を行う.
Lua言語にstringがあります.format()関数、文字列をフォーマットできます 異なる点は、フォーマット説明子を使用して占有される点であり、c言語とよく似ている %dは整数 を表す.%sは文字列 を表す.%fは小数を表し、%0.1 fは1桁の小数を保持し、%0.2 fは2桁の小数 を保持する.
table Lua言語種の配列はtableタイプ である. tableはLua言語のコードフォーマット構造であり、配列はこのような構造を用いて実現された である.基本使用 table を初期化する. tableに値を付与には、配列方式の角標に値を付与する2つの方式があり、キー値対方式 がある.
tableのいくつかの方法 追加要素 除去要素 table長
モジュールモジュールの基本メンバーは、変数と関数 としても Lua言語のモジュールは、C#に書かれた静的ツールクラス と機能的に類似しています. Luaのモジュールは、文法的にネーミングスペースに似ており、 を使用するには導入が必要です.新しいluaスクリプト を作成は、スクリプト名と同じ名前のtableを初期化します. 用tableName.変数、およびtableName.functionは変数と関数 を定義するモジュールの最後にreturnモジュール名 を書くモジュール、require(「モジュール名」)またはrequire「モジュール名」 を使用変数およびメソッド にアクセスする
メタテーブルメタテーブル(metatable)は、2つのテーブルの間に付属関係を生じさせ、マスタテーブルを操作するだけでメタテーブル を間接的に操作することができる. Lua言語でオブジェクト向けをシミュレートし、メタテーブルは不可欠な である.基本操作 2 2 2つの一般テーブル をインスタンス化関連する2つのテーブル setmetatable(表A,表B)表Aを表Bの主表とし、表Bはメタ表 とする. getmetatableテーブル名にメタテーブルがある場合はメタテーブルのタイプとアドレスを返し、ない場合はnil を返します.
__indexインデックス マスタテーブルでメタテーブルのメンバーを操作するには、メタテーブルの を設定する必要がある.元テーブル名._index=メタテーブル名 テーブル名を直接使用できます.要素 にキー名でアクセス
オブジェクト向けの紹介 Lua自体には強力なクラスライブラリはなく、単純でコンパクトな言語であり、他の言語の補助として存在する である. Lua言語自体にクラスとオブジェクトの概念がない Tableを用いてクラスとオブジェクトの関係をシミュレートした .
命名規則
SciTEエディタ使用マニュアル
--
--[[ ]]
--[[ --]]
--[[ ]]--
演算子
..
~=
and,or,not
if( )then end
if( ) then else end
if( ) then elseif( ) then else end
//10 i<=10
//1 i+1 ,
for i=0,10,1 do
end
while( )
do
end
repeat
until (a
={ 1, 2, 3, N}
table.getn( )
関数#カンスウ#
[ / ] function ([ ])
--
end
function Add(a,b)
return a+b
end
function DelegateF(a,b,func)
retuen func(a+b)
end
DelegateF(1,2,Add)
スコープの比較
"hello"
'hello'
[[hello]]
..
改行\\
個\"
「\'
個'string.upper(),string.lower()
string.reverse( )
string.len()
string.reverse()
string.gsub( , , ,[ ])
Console.WriteLine(" , "+name);
Console.WriteLine(" , {0}",name)
string.format()
で文字列フォーマットtable
={}
myTable2={}
myTable2[" "]=23
myTable2[" "]=20
myTable2[" "]=12
myTable={}
myTable[1]="JIAYAJIE"
myTable[2]="kusdjias"
myTable[3]=223
-
//
for key,value in ipairs( ) do
print(key,value)
end
pairs //
table.insert( ,[ ], )
[ ]=
table.remove( ,[ ])
// , , , ,
//
[ ]=nil
//
table.getn( )
//
,
モジュール
メタテーブル
__index
tableA={name=' ',age=22,gender='woman'}
tableB={Bname=' ',Bage=25,Bgender='man'}
//
setmetatable(tableA,tableB)
print(getmetatable(tableA))
// __index
tableB.__index=tableB
print(tableA.Bname)
オブジェクト向けの紹介
命名規則