4

他のいくつかの言語のように、Lua (特にコロナ SDK を使用しています) で使用できる短縮された「if / then」構文はありますか?特に次の行に沿って:

 res = (a == b) ? "It worked" : "It did NOT work"
4

3 に答える 3

9

を表すx = a ? b : cために、lua-users wikiは次のように提案しています。

頻繁に使用され、強く推奨される解決策は、二項演算子と二項演算子を組み合わせてandor三項演算子に近づけることです。

x = a and b or c

を表すx = a ? b : c ? d : eために、ウィキはさらに次のことを提案しています。

x = a and b or c and d or e

警告:bこの手法は、または が またはdnilある場合に失敗する可能性がありfalseます。

于 2012-05-02T04:56:12.310 に答える
8

Lua ではブール式が短絡されているため、一般的なイディオムは and/or の構築です。

res  = a == b and "It worked" or "It did NOT work"

個人的には、ほとんどすべての場合に if/then/else を好みます。

于 2012-05-02T05:48:57.957 に答える
-2

ルアは近道を持っていない、これだけ

 a=a or "hi"

ちょうど同じように:

 if not(a) then  a="hi" end
于 2012-07-29T09:12:50.727 に答える