में अजीब वापसी विवरण मैं गिटूब पर कुछ लुआ कोड ब्राउज़ कर रहा हूं जहां मुझे return Memory.value("game", "textbox") == 1
जैसे कई बयान दिखाई देते हैं।
क्या यह "बराबर" return if value ==1
या if value == 1 return true, else return false
है?लुआ
लुआ
उत्तर
साथ समारोह कॉल का परिणाम तुलना return
एक कीवर्ड है, और एक तर्क के रूप में एक शर्त नहीं है, बल्कि एक अभिव्यक्ति है। यदि आप स्पष्ट रूप से return
बताते हैं तो यह वापस आ जाएगा। हालांकि यह इसके तर्कों का मूल्यांकन करता है, जो तब होता है जब तार्किक पहलू खेल में आता है।
मैं तार्किक पहलू में शामिल होने जा रहा हूं।
==
एक तुलना ऑपरेटर है, यह जांच करता है कि क्या यह तर्क प्रत्येक के बराबर है। यदि ऐसा है तो यह सच हो जाता है। तो जब return
में उपयोग किया जाता है, return
मूल्यांकन करेगा और सही होगा यदि वे बराबर हैं।
यह ==
तक सीमित नहीं है, किसी भी तुलना ऑपरेटरों (~=
, <=
, >=
, <
, >
) सटीक एक ही बात करेंगे।
and
, or
हालांकि थोड़ा अलग काम करता है। वे सच/झूठी नहीं लौटते हैं।यहाँ उनका व्यवहार है:
return a and b
: यह मूल रूप से का मूल्यांकन करता है, तो एक सच है (न तो झूठी है और न ही शून्य) ख
return a or b
वापसी: यह मूल रूप से तब्दील करने के लिए * अगर एक सच है (न तो झूठी है और न ही शून्य) एक वापसी, अन्यथा ख
तो तुम कल्पना कर सकता के रूप में वापसी, return a and b or c
जैसा ही कुछ
if a then
if b then
return b
else
return c
end
else
return c
end
तो return a and b or c
, return ((a and b) or c)
और पूरा होने की खातिर के बराबर है not
बस यह मूल्यांकन करता है और यह उलट है, इसलिए यदि यह बात गलत है/शून्य यह सच रिटर्न, अन्यथा गलत देता है।
return
कथन एक अभिव्यक्ति को इसके तर्क के रूप में उम्मीद करता है। इसका मतलब है कि यदि आप return expression
लिखते हैं, तो expression
का मूल्यांकन मूल्य वापस किया जाना है।
इस विशिष्ट मामले में, Memory.value("game", "textbox") == 1
एक अभिव्यक्ति है कि true
का मूल्यांकन करता है, तो Memory.value("game", "textbox")
के रिटर्न मान 1
के बराबर होती है है। यदि Memory.value("game", "textbox")
1
से भिन्न मान होना था, तो अभिव्यक्ति false
का मूल्यांकन करेगी, जो कि return
कथन वापस आ जाएगा।
आप आसानी से के रूप में
if (Memory.value("game", "textbox") == 1) then
return true
else
return false
end
दिया बयान लिख सकता है लेकिन जब यह तार्किक अनावश्यक है, तो आप इस कोड लिखने से बचने के लिए और बदले का उपयोग एक लाइनर आपके द्वारा दी गई चाहेंगे।
आपका प्रश्न कहता है कि आप पर्ल को जानते हैं। नहीं, यह पर्ल की तरह नहीं है, जहां 'if' की स्थिति और समान कथन कथन का पालन कर सकते हैं।
return
शून्य या अधिक वापसी मानों की एक सूची की अपेक्षा करता है। एक समारोह किसी भी लंबाई सूची वापस कर सकते हैं। इसमें कई रिटर्न स्टेटमेंट भी हो सकते हैं, और उन्हें समान लंबाई या अर्थ की सूचियों को वापस करने की आवश्यकता नहीं है। तो, फ़ंक्शन का दस्तावेज़ आवश्यक है। उदाहरण के रूप में load देखें।
यह कथन true
या false
देता है।
यह मूल्य तालिका के रूप में स्मृति द्वारा संदर्भित, "मूल्य" के साथ अनुक्रमित व्यवहार करता है, दो स्ट्रिंग तर्क के साथ एक समारोह के रूप परिणामस्वरूप मूल्य कॉल करता है और मान 1