118

Luaでインライン条件を使用する方法はありますか?

そのような:

print("blah: " .. (a == true ? "blah" : "nahblah"))
4

4 に答える 4

161

もちろん:

print("blah: " .. (a and "blah" or "nahblah"))
于 2011-04-02T20:59:39.287 に答える
40

うまくいかない場合は、a and t or fいつでも関数を作成できます。

function ternary ( cond , T , F )
    if cond then return T else return F end
end

print("blah: " .. ternary(a == true ,"blah" ,"nahblah"))

もちろん、T と F が常に評価されるという欠点があります....三項関数に関数を提供する必要があることを回避するには、扱いにくくなる可能性があります。

function ternary ( cond , T , F , ...)
    if cond then return T(...) else return F(...) end
end

print("blah: " .. ternary(a == true ,function() return "blah" end ,function() return "nahblah" end))
于 2011-04-03T12:29:48.237 に答える