Lua'da satır içi koşulları kullanmanın bir yolu var mı?
Gibi:
print("blah: " .. (a == true ? "blah" : "nahblah"))
Yanıtlar:
Elbette:
print("blah: " .. (a and "blah" or "nahblah"))
(cond and false-value or x)Bu xher durumda sonuçlanacaktır .
a and false or trueile aynı cevabı vermeyeceği doğrudur not a. Bu deyim, genellikle eğer arzu değer durumlar için kullanılır adoğrudur olamaz falseya nil.
a and assert(b) or c.
Eğer a and t or fsizin için çalışmaz, her zaman sadece bir işlev oluşturabilirsiniz:
function ternary ( cond , T , F )
if cond then return T else return F end
end
print("blah: " .. ternary(a == true ,"blah" ,"nahblah"))
Tabii ki, o zaman T ve F'nin her zaman değerlendirildiği dezavantajınız var .... Üç basamaklı fonksiyonunuza işlevler sağlamanız gerektiğini ve bu zorlaşabilir:
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))
tolduğu nil.