2010-12-09 11 views
9

मैं स्थिर वर्ग समारोह को लुआ में बांधना चाहता हूं। जैसा कि आप जानते हैं, स्टैटिक क्लास फ़ंक्शन क्लास फ़ंक्शन के साथ कुछ अंतर है। तो lua में समारोह कॉल कोड इस तरह होना चाहिए ...लुआ में नेमस्पेस कैसे बनाएं?


//C++ 
lua_tinker::def(L, "Foo_Func", &Foo::Func); 

//Lua 
Foo_Func() 

लेकिन मैं इस


//Lua 
Foo.Func() 

तरह lua में समारोह कॉल करना चाहते हैं वहाँ किसी भी तरह से इस तरह उपयोग करने के लिए है? लुआ टेबल सहायक हो सकता है। लेकिन मुझे कोई संदर्भ नहीं मिल रहा है।

उत्तर

9

हां, यह एक तालिका के साथ किया जाएगा और वास्तव में जब आप उन्हें require के साथ आयात करते हैं तो अधिकांश मॉड्यूल कैसे काम करते हैं।

Foo = {} -- make a table called 'Foo' 
Foo.Func = function() -- create a 'Func' function in stored in the table 
    print 'foo' -- do something 
end 
Foo.Func() -- call the function 
+1

याद रखें कि यदि आप की घोषणा की: Foo.Func = समारोह (इस) ... अंत आप इसे कॉल कर सकते हैं: फू: समारोह() (नोटिस ':'), यह पारित करेंगे फू तालिका को पहले फंक्शन पैरामीटर के रूप में भी। – Goles

4

मुझे लगता है कि आपको PiL chapter 26.2 सबसे दिलचस्प लगेगा। यदि आप अपनी लाइब्रेरी को तालिका के समान नाम से संकलित करते हैं (इसलिए filename == modulename) तो आप बस मॉड्यूल की आवश्यकता हो सकती है।