wake-up-neo.com

Inline-Bedingungen in Lua (a == b? "Yes": "no")?

Gibt es überhaupt Inline-Bedingungen in Lua zu verwenden?

Sowie:

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

Sicher:

print("blah: " .. (a and "blah" or "nahblah"))
97
John Zwinck

Wenn der a and t or f funktioniert nicht für Sie, Sie können immer nur eine Funktion erstellen:

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

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

dann haben Sie natürlich den Nachteil, dass T und F immer ausgewertet werden. Um dies zu umgehen, müssen Sie Funktionen für Ihre ternäre Funktion bereitstellen.

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))
22
daurnimator