लुआ में इनलाइन स्थितियों का उपयोग करने के लिए वैसे भी क्या है?
जैसे कि:
print("blah: " .. (a == true ? "blah" : "nahblah"))
जवाबों:
ज़रूर:
print("blah: " .. (a and "blah" or "nahblah"))
(cond and false-value or x)
जिसके परिणामस्वरूप x
सभी मामले होंगे।
a and false or true
उतने ही उत्तर देने वाला नहीं है not a
। इस मुहावरे का उपयोग आमतौर पर उन मामलों के लिए किया जाता है, जहाँ अगर वांछित मूल्य a
सही है false
या नहीं हो सकता है nil
।
a and assert(b) or c
।
यदि आप के लिए 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"))
बेशक, फिर आपके पास ड्रा है कि हमेशा टी और एफ का मूल्यांकन किया जाता है .... चारों ओर पाने के लिए आपको अपने टर्नरी फ़ंक्शन को फ़ंक्शन प्रदान करने की आवश्यकता होती है, और जो कि अनपेक्षित हो सकती है:
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))
t
होता है nil
।