मेरे पास इसके लिए निरंतर परिभाषित कक्षा है। मेरे पास एक वर्ग विधि परिभाषित है जो उस वर्ग निरंतर उपयोग करता है। यह ठीक काम करता है। एक उदाहरण:(रुबी में) मिश्रित श्रेणी के तरीकों को क्लास स्थिरांक तक पहुंचने की अनुमति देता है
#! /usr/bin/env ruby
class NonInstantiableClass
Const = "hello, world!"
class << self
def shout_my_constant
puts Const.upcase
end
end
end
NonInstantiableClass.shout_my_constant
मेरे समस्या एक बाहरी मॉड्यूल के लिए इस वर्ग विधि बाहर ले जाने के लिए है, तो तरह के प्रयास में पैदा होती है:
#! /usr/bin/env ruby
module CommonMethods
def shout_my_constant
puts Const.upcase
end
end
class NonInstantiableClass
Const = "hello, world!"
class << self
include CommonMethods
end
end
NonInstantiableClass.shout_my_constant
रूबी, मॉड्यूल से एक निरंतर का अनुरोध के रूप में विधि की व्याख्या करने के बजाय कक्षा:
line 5:in `shout_my_constant': uninitialized constant CommonMethods::Const (NameError)
तो, आप किस जादू की चाल को क्लास निरंतर कक्षा तक पहुंचने देते हैं? बहुत धन्यवाद।
#! /usr/bin/env ruby
module CommonMethods
def shout_my_constant
puts self::Const.upcase
end
end
class NonInstantiableClass
Const = "hello, world!"
class << self
include CommonMethods
end
end
NonInstantiableClass.shout_my_constant
HTH
अच्छा, यह चीजों को साफ़ करता है। मुझे अभी तक :: वाक्यविन्यास का अनुभव नहीं हुआ :)। – jameshfisher
अभी पढ़ना बंद मत करो। जोहान्स प्रतिक्रिया के नीचे पढ़ें। – Sebastian