/ / lua कीमिया का उपयोग करके किसी फ़ंक्शन को कॉल करने से मान लौटाएं

लौआ कीमिया का उपयोग करके एक फ़ंक्शन को कॉल करने से मान लौटाएं

Im का उपयोग कर कार्यस्क्रिप्ट से लुआ में एक समारोह बुला रहा है callstack : Array = luaAlchemyInstance.doString("luafunction");

मेरे फ़ंक्शन को कुछ मान वापस करने चाहिए

function luafunction()
return true, 125
end

जब मैं as3 में फ़ंक्शन द्वारा लौटाए गए कॉलस्टैक सरणी को देखता हूं, तो मैं केवल सफलता / असफल भाग प्राप्त करता हूं। सरणी की लंबाई 1, सत्य है, और इसमें मेरा कोई भी रिटर्न मान नहीं है।

किसी भी विचार क्या गलत हो रहा है? चियर्स

उत्तर:

उत्तर № 1 के लिए 1

doString() मूल्यों की सरणी देता है, कॉल करके लौटाया जाता है। उस सरणी का पहला आइटम है true या false, कॉल सफलता या विफलता का संकेत है। अगर यह होता है false, दूसरा आइटम त्रुटि संदेश है।

यह भी ध्यान दें doString() तर्क के रूप में वास्तविक Lua कोड लेता है, इसलिए यह होना चाहिए

doString("return luafunction()")

देख प्रलेखन तथा उदाहरण.


उत्तर № 2 के लिए 1

मैं लू-कीमिया नहीं जानता, लेकिन अगर doString() मानक लुआ के रूप में समान शब्दार्थ का अनुसरण करता है, फ़ंक्शन को कॉल करने का उचित तरीका होना चाहिए:

callstack : Array = luaAlchemyInstance.doString("return luafunction()");

उत्तर के लिए -2 № 3

मैं केवल एक ही बार में एक ही चर प्रकार (नंबर, स्ट्रिंग, बूलियन, आदि) पर लौटने वाले Actionscript में कार्य करता हूं।

ऐसा लगता है कि आप एक ही समय में एक बूलियन और एक संख्या / int / uint मान वापस करने की कोशिश कर रहे हैं।

आप सकता है बस वस्तु मूल्यों के रूप में दोनों को वापस करने की कोशिश करें, कुछ इस तरह से:

function luafunction():Object
{
var obj:Object = new Object();
obj.myBoolean = true;
obj.myNumber = 125;
return obj;
}

तो आप कुछ इस तरह से अपने मूल्यों को पुनः प्राप्त कर सकते हैं:

trace(obj.myBoolean, obj.myNumber);