मेरे पास एक एप्लिकेशन है जो लुआ स्क्रिप्ट चलाता है। प्रत्येक लुआ स्क्रिप्ट कई बार चलाने की संभावना है। जब भी एक कुंजी दबाया जाता है तो कुछ स्क्रिप्ट भी चल सकती हैं।लुआ - इसे पुनर्स्थापित किए बिना स्क्रिप्ट की स्थिति रीसेट करना
मैं इन स्क्रिप्ट को प्रत्येक रन के बीच "रीसेट" करना चाहता हूं। यदि कोई उपयोगकर्ता एक चर फू सेट करता है, तो अगली बार जब तक उपयोगकर्ता इसे फिर से परिभाषित नहीं करता तब तक फू स्क्रिप्ट में मौजूद नहीं होना चाहिए।
समस्या यह है कि, यदि मैं ऐसा व्यवहार करना चाहता हूं, तो मुझे हर बार एक नया lua_State बनाना होगा, फिर हर बार पुस्तकालयों को खोलें, और फिर प्रत्येक बार स्क्रिप्ट फ़ाइल को पार्स करें, जो बहुत ही अप्रत्याशित लगता है।
लाइब्रेरी लोड करना एक हल्का ऑपरेशन हो सकता है (मुझे लगता है), लेकिन स्क्रिप्ट को पार्स करना शायद नहीं है।
क्या कोई नया lua_State बनाने और पूरे लुआ स्क्रिप्ट फ़ाइल को दोबारा तैयार किए बिना लुआ स्क्रिप्ट (यानी उपयोगकर्ता-कोड-परिभाषित चर) को रीसेट करने का कोई तरीका है? मैं स्क्रिप्ट फ़ाइलों को एप्लिकेशन स्टार्टअप पर एक बार पार्स करना चाहूंगा क्योंकि उन्हें रन-टाइम पर संशोधित नहीं किया गया है।
धन्यवाद। :)
संपादित: मैं इस विषय पाया लेकिन यह विस्तृत है नहीं करने के लिए के बारे में: http://lua-users.org/lists/lua-l/2006-01/msg00493.html
संपादित: lua_setfenv कि करने के लिए संबंधित प्रतीत होती है। मैं थोड़ा और खोदूँगा।
EDIT: ऐसा लगता है कि LUA 5.2 के रूप में और अधिक lua_setfenv नहीं है। चूंकि मैं 5.3 का उपयोग कर रहा हूं, मुझे ऐसा करने के लिए वातावरण (यानी एक छिपी हुई तालिका नामांकित _ENV जहां चर संग्रहित किया जाता है) सेट करना होगा, और इस प्रकार सबकुछ पुनः लोड करना होगा, जो मैं नहीं करना चाहता ...
क्या आप इसे कोरआउट के साथ लुआ पक्ष कर सकते हैं? – warspyking