क्या लुआ में इनलाइन स्थितियों का उपयोग करने के लिए वैसे भी है?लुआ में इनलाइन स्थितियां (ए == बी? "हाँ": "नहीं")?
जैसे:
print("blah: " .. (a == true ? "blah" : "nahblah"))
क्या लुआ में इनलाइन स्थितियों का उपयोग करने के लिए वैसे भी है?लुआ में इनलाइन स्थितियां (ए == बी? "हाँ": "नहीं")?
जैसे:
print("blah: " .. (a == true ? "blah" : "nahblah"))
ज़रूर:
function ternary (cond , T , F)
if cond then return T else return F end
end
print("blah: " .. ternary(a == true ,"blah" ,"nahblah"))
निश्चित रूप से
:
print("blah: " .. (a and "blah" or "nahblah"))
a and t or f
आप के लिए काम नहीं करता है, तो आप हमेशा सिर्फ एक समारोह बना सकते हैं , तो आपके पास वापस आकर्षित किया गया है कि टी और एफ का हमेशा मूल्यांकन किया जाता है .... उस y के आसपास जाने के लिए कहां अपनी त्रिगुट कार्य करने के लिए कार्य करता है प्रदान करने की आवश्यकता है, और उस बोझल प्राप्त कर सकते हैं:
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))
मुझे लगता है कि यह बूलियन चर के लिए सबसे उपयोगी है – Vyacheslav
यह उत्तर वास्तव में शीर्ष उत्तर से बेहतर है क्योंकि यह बूलियन के लिए भी काम करता है। –
वहाँ, त्रिगुट ऑपरेटर के बारे में lua-users wiki पर एक अच्छी लेख है एक साथ समस्या विवरण और कई समाधान के साथ। उत्तर के लिए
+1। हालांकि मुझे नहीं लगता कि यह सख्ती से सच है - मैं LUA का उपयोग नहीं करता - लेकिन मुझे लगता है कि यह अन्य भाषाओं में एक टर्नरी ऑपरेटर पर इस दृष्टिकोण के साथ "दोष" साझा करता है। कल्पना कीजिए: '(cond और false-value या x) 'इसका परिणाम सभी मामलों में' x' होगा। –
यह भी ए के मूल्य को मुद्रित नहीं करेगा? – corsiKa
@glowcoder सं। "संयोजन ऑपरेटर (और) अपना पहला तर्क देता है यदि यह मान गलत या शून्य है; अन्यथा, और अपना दूसरा तर्क देता है। संयोजन ऑपरेटर (या) अपना पहला तर्क देता है यदि यह मान शून्य से अलग है और झूठा; अन्यथा, या अपना दूसरा तर्क देता है। दोनों और और शॉर्ट-कट मूल्यांकन का उपयोग करते हैं, यानी, दूसरा ऑपरेंड केवल तभी मूल्यांकन किया जाता है जब - "http://www.lua.org/manual/5.0/manual से .html –