「式」の版間の差分
タグ: モバイル編集 モバイルウェブ編集 |
編集の要約なし |
||
(同じ利用者による、間の9版が非表示) | |||
1行目: | 1行目: | ||
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/expression/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}} | |||
[[Category:基本]] | [[Category:基本]] | ||
式は、AliceScriptにおけるもっとも重要かつ基本的な要素です。AliceScriptにおいて、ほとんどのものは式で記述されます。ここでは式を値があるものすべてと定義します。 | 式は、AliceScriptにおけるもっとも重要かつ基本的な要素です。AliceScriptにおいて、ほとんどのものは式で記述されます。ここでは式を値があるものすべてと定義します。 | ||
32行目: | 34行目: | ||
print(++x); //出力:3 | print(++x); //出力:3 | ||
===デクリメント演算子=== | ===デクリメント演算子=== | ||
単項デクリメント演算子<code>—</code>は変数を一つずつデクリメントします。デクリメントとは、その値から1を減算することを指します。デクリメント演算子には後置デクリメント演算子<code>x++</code>と前置デクリメント演算子<code>++x</code>があります。 | 単項デクリメント演算子<code>—-</code>は変数を一つずつデクリメントします。デクリメントとは、その値から1を減算することを指します。デクリメント演算子には後置デクリメント演算子<code>x++</code>と前置デクリメント演算子<code>++x</code>があります。 | ||
====後置デクリメント演算子==== | ====後置デクリメント演算子==== | ||
次の例に示すように、<code>x++</code>の結果は<code>x</code>のデクリメント前の値です。 | 次の例に示すように、<code>x++</code>の結果は<code>x</code>のデクリメント前の値です。 | ||
45行目: | 47行目: | ||
print(++x); //出力:2 | print(++x); //出力:2 | ||
print(++x); //出力:1 | print(++x); //出力:1 | ||
===単項プラス演算子と単項マイナス演算子=== | ===単項プラス演算子と単項マイナス演算子=== | ||
単項プラス演算子<code>+</code>ではその値が返されます。単項マイナス演算子<code>-</code>ではその値の否定が返されます。 | 単項プラス演算子<code>+</code>ではその値が返されます。単項マイナス演算子<code>-</code>ではその値の否定が返されます。 | ||
91行目: | 94行目: | ||
==デリゲートの組み合わせ== | ==デリゲートの組み合わせ== | ||
左辺と右辺の両方がデリゲート型の場合、左辺のデリゲートと右辺のデリゲートが結合された新しいデリゲートが返されます。次に例を示します。 | 左辺と右辺の両方がデリゲート型の場合、左辺のデリゲートと右辺のデリゲートが結合された新しいデリゲートが返されます。次に例を示します。 | ||
var del1 = | var del1 = ()=>{ | ||
print(”Hello”); | print(”Hello”); | ||
}; | }; | ||
var del2 = | var del2 = ()=>{ | ||
print(“World”); | print(“World”); | ||
}; | }; | ||
102行目: | 105行目: | ||
//出力:Hello | //出力:Hello | ||
// World | // World | ||
==ラムダ演算子== | |||
ラムダ演算子<code>=></code>は、[[デリゲート#ラムダ式|ラムダ式]]の定義時に、左側の引数指定部と右側の式本体を分ける機能を持ち、それ以外の機能はありません。詳細については、[[デリゲート#ラムダ式|ラムダ式]]を参照してください。 | |||
==等値演算子== | ==等値演算子== | ||
等値演算子は左右の値が等しいかどうかを判断し、それに応じた値を返します。 | 等値演算子は左右の値が等しいかどうかを判断し、それに応じた値を返します。 | ||
143行目: | 148行目: | ||
print(true^true); //出力:false | print(true^true); //出力:false | ||
=Null合体演算子= | =Null合体演算子= | ||
==Null合体演算子== | |||
Null合体演算子<code>??</code>は、左の値が<code>null</code>でない場合その値を返し、それ以外の場合は右の値が評価され返されます。次に例を示します。 | Null合体演算子<code>??</code>は、左の値が<code>null</code>でない場合その値を返し、それ以外の場合は右の値が評価され返されます。次に例を示します。 | ||
var v = “ABC”; | var v = “ABC”; | ||
148行目: | 154行目: | ||
v = null; | v = null; | ||
print(v??”Hello,World”);//出力:Hello,World | print(v??”Hello,World”);//出力:Hello,World | ||
==Null合体代入演算子== | |||
Null合体代入演算子<code>??=</code>は、その値が<code>null</code>と評価された場合のみ右辺の値を代入し、それ以外の場合は何もしません。次に例を示します。 | |||
var v = null; | |||
v ??= "Hello,World"; | |||
print(v);//出力:Hello,World | |||
=型一致演算子= | =型一致演算子= | ||
164行目: | 175行目: | ||
print(str.type);//出力:STRING | print(str.type);//出力:STRING | ||
=条件演算子= | =条件演算子= | ||
条件演算子(三項条件演算子)は、論理式を評価し、論理式の評価結果(<code>true</code>または<code>false</code>)に応じて続く二つの式のいずれかの結果を返します。まずは次の例を参照してください。 | 条件演算子(三項条件演算子)<code>?:</code>は、論理式を評価し、論理式の評価結果(<code>true</code>または<code>false</code>)に応じて続く二つの式のいずれかの結果を返します。まずは次の例を参照してください。 | ||
string todo = 現在の気温 > 30.0 ? "エアコンを入れる" : "エアコンを切る"; | string todo = 現在の気温 > 30.0 ? "エアコンを入れる" : "エアコンを切る"; | ||
print("todo={0}",todo); | print("todo={0}",todo); | ||
171行目: | 182行目: | ||
//現在の気温が32℃の場合 : todo=エアコンを入れる | //現在の気温が32℃の場合 : todo=エアコンを入れる | ||
上記の例では、現在の気温が30℃以上の場合、<code>todo</code>に「エアコンを入れる」が代入されます。 | 上記の例では、現在の気温が30℃以上の場合、<code>todo</code>に「エアコンを入れる」が代入されます。 | ||
この例のように、この条件演算子の構文は次のようになります。 | この例のように、この条件演算子の構文は次のようになります。 | ||
条件 ? 結果A : 結果B | |||
<code>条件</code>式は、論理式で<code>true</code>または<code>false</code>のどちらかと評価される必要があります。<code>条件</code>が<code>true</code>と評価された場合は、<code>結果A</code>の式が評価され、<code>条件</code>が<code>false</code>と評価された場合は、<code>結果B</code>の式が評価され、それらの結果が演算の結果として返されます。結果Aと結果Bの両方が評価されることはありません。 | <code>条件</code>式は、論理式で<code>true</code>または<code>false</code>のどちらかと評価される必要があります。<code>条件</code>が<code>true</code>と評価された場合は、<code>結果A</code>の式が評価され、<code>条件</code>が<code>false</code>と評価された場合は、<code>結果B</code>の式が評価され、それらの結果が演算の結果として返されます。結果Aと結果Bの両方が評価されることはありません。 | ||