या, अधिक विशिष्ट होने के लिए: क्या मैं इसके बजाय निजी तरीकों का उपयोग नहीं कर सकता?थोर में no_tasks विधि क्यों है?
उत्तर
जैसा कि मैंने थोर समझते हैं कि यह तरीके no tasks तरीके के रूप में चिह्नित करने के लिए क्योंकि एक विधि एक कार्य किया जा रहा है की अवधारणा के लिए एक विधि के visibility की अवधारणा से अलग है की सुविधा है। उन्हें अलग-अलग होने की आवश्यकता है क्योंकि वे अलग-अलग नौकरियां करते हैं।
कक्षा Thor
के उप-वर्ग के प्रत्येक विधि (स्वतंत्र रूप से इसकी दृश्यता) को तब तक एक कार्य माना जाता है जब तक इसे स्पष्ट रूप से कोई कार्य नहीं माना जाता है। किसी कार्य की दृश्यता को नियंत्रित करके आप उस कार्य तक पहुंच नियंत्रित करते हैं, उदा। यदि आप एक कार्य निजी करते हैं तो इसे उप-वर्गों द्वारा या सीधे उपयोगकर्ता द्वारा नहीं कहा जा सकता है। एक्सेस कंट्रोल अलग है कि कुछ काम है या नहीं। जिन तरीकों को कार्य नहीं हैं उन्हें सीधे थोर द्वारा नहीं कहा जा सकता है और उनके पास options नहीं हो सकता है।
उदाहरण देने के लिए यहां एक उदाहरण दिया गया है। निम्नलिखित SuperClass
में baseTask
और से विधि this_is_not_a_task
विधि प्राप्त होती है। ध्यान दें कि यदि कार्य baseTask
को निजी के रूप में चिह्नित किया गया है तो इसे SuperClass
द्वारा विरासत में नहीं मिला जाएगा लेकिन this_is_not_a_task
अभी भी विरासत में मिलेगा।
require 'thor'
class BaseClass < Thor
method_options :force => :boolean, :alias => :string
desc 'baseTask', 'Base task'
def baseTask
puts this_is_not_a_task("base")
end
no_tasks do
def this_is_not_a_task(s)
s.upcase
end
end
# private :baseTask
end
class SuperClass < BaseClass
desc 'superTask', 'Super task'
def superTask
puts this_is_not_a_task("super")
end
end
SuperClass.start(ARGV)
- 1. थोर
- 2. रूबी थोर सीएलआई
- 3. थोर कॉल किए बिना निष्पादन योग्य थोर-संचालित स्क्रिप्ट को कॉल करना संभव है?
- 4. थोर और वाईएएमएल बाइनरी के रूप में outputting?
- 5. क्लोन() विधि java.lang.Object में संरक्षित क्यों है?
- 6. क्यों ObservableCollection में RemoveAll विधि नहीं है?
- 7. स्ट्रिंग प्रकार में .ToString() विधि क्यों है?
- 8. XElement में GetAttributeValue विधि क्यों नहीं है?
- 9. क्यों क्लास क्लास में रिसोर्सएस्ट्रीम विधि है?
- 10. कंसोल अनुप्रयोगों के लिए बोसन बनाम थोर
- 11. सिस्टम स्थापित करने के लिए थोर ढूंढने के टेम्पलेट्स कैसे बनाएं। थोर फाइलें?
- 12. रूबी के अंदर सभी प्रक्रियाओं को कैसे मारें थोर थोर पर?
- 13. डेटाबिंड() विधि क्यों आवश्यक है?
- 14. 'transform_keys' विधि क्यों अपरिभाषित है?
- 15. मुख्य विधि निजी क्यों है?
- 16. एक विधि क्यों नहीं है?
- 17. दो थोर कार्य कैसे साझा करें विकल्प?
- 18. थोर निष्पादन पर ध्यान न दें टास्क नाम
- 19. रुबी - थोर पहले एक विशिष्ट कार्य निष्पादित करें
- 20. पर्ल 6 की अनचाहे विधि रूटीन की विधि क्यों है?
- 21. एआरसी विधि तर्क क्यों बनाए रखता है?
- 22. मानचित्र पर मानचित्र विधि क्यों नहीं है?
- 23. मेरी BeginInvoke विधि async क्यों नहीं है?
- 24. उपclass विधि क्यों नहीं कहा जाता है?
- 25. यह विधि एक गर्म जगह क्यों है?
- 26. WindowManager.LayoutParams एक setTitle विधि क्यों है?
- 27. फ्लास्क की जेसनिफ़ाई विधि धीमी क्यों है?
- 28. कोई Convert.toFloat() विधि क्यों नहीं है?
- 29. यह विधि सेगमेंटेशन गलती क्यों फेंकती है?
- 30. क्यों है $ का उपयोग कर हटाना विधि
मुझे वास्तव में "एक विधि होने की विधि एक विधि की दृश्यता की अवधारणा से अलग है" के अपने भेद को पसंद है। – awendt