ruby - Send allows access to private variables -
निम्न कोड पर विचार करें:
def create_class (class_name, superclass, और ब्लॉक) क्लेस = क्लास.न्यू सुपरक्लास, और ऑब्जेक्ट ब्लॉक। ऑब्जेक्ट.कंस्ट_सेट क्लास_नाम, क्लेस एंड
मेरे द्वारा किए जाने के बाद:
create_class ('उपयोगकर्ता', एक्टिवरेकॉर्ड: : बेस)
निम्न ठीक है:
Object.send (: remove_const,: उपयोगकर्ता)
लेकिन यह:
Object.remove_const: उपयोगकर्ता
इस में परिणाम:
NoMethodError: निजी विधि `remove_const ' वस्तु के लिए कहा जाता है: कक्षा
? क्या मेरे लिए कोई मतलब नहीं है ... रूबी की एक्सेस जांच को ओवरराइड कर सकता है? कृपया मदद करें!
ऐसा लगता है कि रूबी की पहुंच जांच ओवरराइड करता है।
< / P>
मेरा अनुमान है कि आप चीजों के साथ अच्छी तरह से खेलना चाहते हैं अन्य लोगों ने निजी बना दिया है यदि आपको किसी वर्ग की विधियों को कॉल करने के लिए भेजने का उपयोग करना आवश्यक है जिसे आपने नहीं बनाया है, तो आपको इसे पहले कॉल करना चाहिए।
Comments
Post a Comment