লুয়ায় যে কোনও উপায়ে ইনলাইন অবস্থার ব্যবহার আছে?
যেমন:
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
।