सी # this
और वीबी में ME
है। लुआ समकक्ष क्या है?लुआ में ऑब्जेक्ट का संदर्भ कैसे होता है?
मैं रोबॉक्स में स्क्रिप्ट क्लास के अभिभावक को संदर्भित करने का प्रयास कर रहा हूं।
सी # this
और वीबी में ME
है। लुआ समकक्ष क्या है?लुआ में ऑब्जेक्ट का संदर्भ कैसे होता है?
मैं रोबॉक्स में स्क्रिप्ट क्लास के अभिभावक को संदर्भित करने का प्रयास कर रहा हूं।
Lua documentation section 2.5.9 से, आत्म संदर्भ आमतौर पर self
है:
पेट के वाक्य रचना के तरीकों को परिभाषित करने, वह है, कार्यों कि एक अंतर्निहित अतिरिक्त पैरामीटर
self
है के लिए प्रयोग किया जाता है। इस प्रकार, बयानfunction t.a.b.c:f (params) body end
वाक्यात्मक चीनी के लिए
t.a.b.c.f = function (self, params) body end
Greg pointed out already के रूप में, नाम आप देख रहे हैं self
है।
हालांकि, ध्यान रखें कि लुआ एक ओओपी भाषा नहीं है, यह पूरी तरह से प्रक्रियात्मक या कार्यात्मक भाषा है। यह एक ओओपी डिजाइन को लागू करने के लिए बस सभी निम्न स्तर की तंत्र प्रदान करता है। डिजाइन सिद्धांतों में से एक को "तंत्र प्रदान करना, नीति नहीं" के रूप में व्यक्त किया गया है। इसके कारण, इस बात की गारंटी देने का कोई तरीका नहीं है कि आप जो पर्यावरण चला रहे हैं वह विरासत का उपयोग करता है, या आप किसी दिए गए ऑब्जेक्ट के लिए माता-पिता को पा सकते हैं।
यह लुआ पुस्तिका, लुआ में प्रोग्रामिंग अनुभागों की समीक्षा करने के लिए एक अच्छा विचार है, और विकी कि सुविधाओं OOP से संबंधित होगा।
लुआ में, आपको "स्वयं" मान चाहिए। हालांकि, आप ROBLOX का उपयोग कर रहे हैं, जो sandboxed है। प्रत्येक स्क्रिप्ट अपने आप सूत्र में चलाया जाता है, और स्क्रिप्ट को संदर्भित करने के लिए, आप "स्क्रिप्ट" का उपयोग करना होगा, यानी script.Parent
local Table = {}
Table.Var = "Testing"
function Table:Test()
print(self.Var)
end
Table:Test()
या
local Table = {}
Table.Var = "Testing"
function Table.Test(self)
print(self.Var)
end
दोनों समारोह भी ऐसा ही होगा सही बात
--Edit--
यह केवल तालिकाओं के साथ काम करते हैं। यदि आप स्क्रिप्ट का अभिभावक प्राप्त करने की कोशिश कर रहे हैं तो आपको स्क्रिप्ट का उपयोग करने की आवश्यकता है। माता-पिता
- नोट स्क्रिप्ट। अभिभावक वापस लौटाएगा जहां स्क्रिप्ट स्थित है। यदि आप एक और माता-पिता जोड़ते हैं, तो स्क्रिप्ट। माता-पिता। माता-पिता, यह अभिभावक के माता-पिता को वापस कर देगा, और इसी तरह।
मैंने आपके लिए "लुआ" को लुआ में बदल दिया।लुआ पुर्तगाली में पृथ्वी का चंद्रमा का एक उचित संज्ञा है। यह एक संक्षिप्त शब्द नहीं है। – RBerteig