Luaのオペレータと式のまとめ
2669 ワード
前言
ここでまとめる内容は他の言語と基本的に似ているので、ここでは基本的なまとめにすぎません.詳しい説明はしない.
さんじゅつオペレータ
Luaが従来の算術オペレータをサポートするのは、「+」(加算)、「-」(減算)、「*」(乗算)、「/」(除算)、「^」(指数)、「%」(型取り)、一元」-」(マイナス記号).これらのオペレータはすべて実数に使用されます.たとえば、x^0.5はxの平方根を計算し、x^3はxの3次方を計算します.
リレーショナルオペレータ
Luaが提供する関係オペレータは、「」,「<=」,「>=」,「=」,「~=」;これらのオペレータの演算結果はすべてtrueまたはfalseです.
オペレータ==は等化テスト、オペレータ~=は不等性テストに使用されます.この2つのオペレータは、任意の2つの値に適用できます.2つの値が異なるタイプを有する場合、Luaはそれらが等しくないと考えられる.特に、nilはそれ自体と等しいだけであることを説明する必要がある.
table、userdata、および関数の場合、Luaは参照比較を行います.つまり、同じオブジェクトを参照している場合にのみ、等しいとみなされます.
ろんりオペレータ
Luaが提供する論理オペレータにはand,or,notがある.条件制御文と同様に、すべての論理オペレータはfalseとnilを偽と見なし、他のものを真と見なします.オペレータandの場合、最初のオペランドが偽である場合、最初のオペランドが返されます.そうでない場合は、2番目のオペランドを返します.オペレータorの場合、最初のオペランドが真であれば、最初のオペランドが返されます.そうでない場合は、2番目のオペランドを返します.ここでC++などの言語とは異なり,Luaの論理オペレータは単純にtrueやfalseを返すのではなく,オペランドの値を返す.たとえば、次のコードがあります.
andもorも「短絡評価」を使用します.つまり、必要に応じて2番目のオペランドを評価するだけです.
文字列接続
2つの文字列をLuaに接続するには、オペレータ"..を使用します.(2点).いずれかのオペランドが数字であれば、Luaはその数字を文字列に変換します.Luaでは、文字列は可変値であり、接続オペレータは元のオペランドを変更することなく、新しい文字列のみを作成します.
table構造式
構造式はtableを作成および初期化するための式です.最も簡単な構造式は、空tableを作成するための空の構造式{}です.構造式は配列を初期化するためにも使用でき、配列の下付き文字は1から始まる.例:
Luaはtableを初期化するための特殊な構文も提供しています.
これに加えて、Luaは、四角カッコの間でインデックス値を明示的に初期化することを可能にするより一般的なフォーマットを提供します.たとえば、次のようにします.
例えばlocal tb 1={x=10,y=20}という構造は,実はlocal tb 1={["x"=10,["y"=20}と等価である.実際のプログラミングでは,この2つの構造式を置き換えることができる.
まとめ
純粋な学習ノートは、何も言うことはありません.みんなにLuaを勉強して役に立つことを望んでいます.
ここでまとめる内容は他の言語と基本的に似ているので、ここでは基本的なまとめにすぎません.詳しい説明はしない.
さんじゅつオペレータ
Luaが従来の算術オペレータをサポートするのは、「+」(加算)、「-」(減算)、「*」(乗算)、「/」(除算)、「^」(指数)、「%」(型取り)、一元」-」(マイナス記号).これらのオペレータはすべて実数に使用されます.たとえば、x^0.5はxの平方根を計算し、x^3はxの3次方を計算します.
リレーショナルオペレータ
Luaが提供する関係オペレータは、「」,「<=」,「>=」,「=」,「~=」;これらのオペレータの演算結果はすべてtrueまたはfalseです.
オペレータ==は等化テスト、オペレータ~=は不等性テストに使用されます.この2つのオペレータは、任意の2つの値に適用できます.2つの値が異なるタイプを有する場合、Luaはそれらが等しくないと考えられる.特に、nilはそれ自体と等しいだけであることを説明する必要がある.
table、userdata、および関数の場合、Luaは参照比較を行います.つまり、同じオブジェクトを参照している場合にのみ、等しいとみなされます.
ろんりオペレータ
Luaが提供する論理オペレータにはand,or,notがある.条件制御文と同様に、すべての論理オペレータはfalseとnilを偽と見なし、他のものを真と見なします.オペレータandの場合、最初のオペランドが偽である場合、最初のオペランドが返されます.そうでない場合は、2番目のオペランドを返します.オペレータorの場合、最初のオペランドが真であれば、最初のオペランドが返されます.そうでない場合は、2番目のオペランドを返します.ここでC++などの言語とは異なり,Luaの論理オペレータは単純にtrueやfalseを返すのではなく,オペランドの値を返す.たとえば、次のコードがあります.
print(4 and 5) -->5
print(nil and 13) -->nil
print(false and 13) -->false
print(4 or 5) -->4
print(false or 5) -->5
andもorも「短絡評価」を使用します.つまり、必要に応じて2番目のオペランドを評価するだけです.
文字列接続
2つの文字列をLuaに接続するには、オペレータ"..を使用します.(2点).いずれかのオペランドが数字であれば、Luaはその数字を文字列に変換します.Luaでは、文字列は可変値であり、接続オペレータは元のオペランドを変更することなく、新しい文字列のみを作成します.
table構造式
構造式はtableを作成および初期化するための式です.最も簡単な構造式は、空tableを作成するための空の構造式{}です.構造式は配列を初期化するためにも使用でき、配列の下付き文字は1から始まる.例:
local tbDays ={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}
print(tbDays[1]) -->Sunday
print(tbDays[2]) -->Monday
print(tbDays[3]) -->Tuesday
print(tbDays[4]) -->Wednesday
print(tbDays[5]) -->Thursday
print(tbDays[6]) -->Friday
print(tbDays[7]) -->Saturday
Luaはtableを初期化するための特殊な構文も提供しています.
local tb1 = {x=10, y=20}
print(tb1.x) -->10
print(tb1["x"]) -->10
これに加えて、Luaは、四角カッコの間でインデックス値を明示的に初期化することを可能にするより一般的なフォーマットを提供します.たとえば、次のようにします.
local tb1 = {["+"] = "add", ["-"] = "sub", ["*"] = "mul", ["/"] = "div"}
print(tb1["+"])
例えばlocal tb 1={x=10,y=20}という構造は,実はlocal tb 1={["x"=10,["y"=20}と等価である.実際のプログラミングでは,この2つの構造式を置き換えることができる.
まとめ
純粋な学習ノートは、何も言うことはありません.みんなにLuaを勉強して役に立つことを望んでいます.