include और extend
व्यवहार को mix in करना
include और extend, CoddyKit पर Ruby Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Ruby Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Ruby Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
व्यवहार को मिक्सिन के रूप में जोड़ना
मॉड्यूल की असली शक्ति मिक्सिन है: इनहेरिटेंस के बिना क्लासों के बीच विधियाँ साझा करना। इसके दो मुख्य साधन include और extend हैं।
module Walkable
def walk
"#{name} is walking"
end
end
class Person
include Walkable
attr_reader :name
def initialize(name)
@name = name
end
end
puts Person.new("Ada").walkinclude इंस्टेंस विधियाँ जोड़ता है
include किसी मॉड्यूल की विधियों को इंस्टेंस विधियों के रूप में मिलाता है। क्लास के हर ऑब्जेक्ट को ये विधियाँ मिल जाती हैं।
module Sayable
def say(msg)
"#{msg}!"
end
end
class Dog
include Sayable
end
puts Dog.new.say("Woof")क्लासों के बीच फिर से उपयोग करना
एक ही मॉड्यूल को कई असंबंधित क्लासों में शामिल किया जा सकता है, जिससे किसी साझा अभिभावक के बिना व्यवहार साझा होता है।
module Timestamped
def stamp
"created"
end
end
class Post; include Timestamped; end
class Comment; include Timestamped; end
puts Post.new.stamp
puts Comment.new.stampextend क्लास विधियाँ जोड़ता है
extend किसी मॉड्यूल की विधियों को क्लास विधियों के रूप में मिलाता है, यानी ऐसी विधियों के रूप में जो स्वयं क्लास ऑब्जेक्ट पर होती हैं।
module Findable
def find(id)
"Finding record #{id}"
end
end
class User
extend Findable
end
puts User.find(42)किसी ऑब्जेक्ट पर extend
आप किसी एक ऑब्जेक्ट पर extend कर सकते हैं, ताकि केवल उसी को ये विधियाँ मिलें और बाकी ऑब्जेक्ट अप्रभावित रहें।
module Admin
def privileges
"all access"
end
end
user = Object.new
user.extend(Admin)
puts user.privilegesinclude बनाम extend
यह अंतर याद रखिए:
include=> विधियाँ इंस्टेंस विधियाँ बन जाती हैं।extend=> विधियाँ क्लास/ऑब्जेक्ट विधियाँ बन जाती हैं।
module Helper
def help; "helping"; end
end
class A; include Helper; end
class B; extend Helper; end
puts A.new.help
puts B.helpमॉड्यूल मेज़बान की विधियाँ देख सकते हैं
मिक्सिन के रूप में जोड़ी गई विधि मेज़बान ऑब्जेक्ट के संदर्भ में चलती है, इसलिए वह मेज़बान की अपनी विधियों को चला सकती है और उसके डेटा तक पहुँच सकती है।
module Describable
def describe
"I am #{role}"
end
end
class Worker
include Describable
def role; "a worker"; end
end
puts Worker.new.describeincluded हुक
जब कोई मॉड्यूल शामिल किया जाए, तब कोड अपने आप चलाने के लिए self.included(base) परिभाषित कीजिए। एक सामान्य तरीका उसी समय क्लास विधियाँ जोड़ता है।
module Trackable
def self.included(base)
puts "Trackable added to #{base}"
end
end
class Order
include Trackable
endसदस्यता की जाँच करना
is_a? और ancestors दिखाते हैं कि शामिल किया गया मॉड्यूल ऑब्जेक्ट की प्रकार-श्रृंखला का हिस्सा बन जाता है।
module Flyable; end
class Bird; include Flyable; end
b = Bird.new
puts b.is_a?(Flyable)
p Bird.ancestorsकई मिक्सिन को मिलाना
एक क्लास कई मॉड्यूल शामिल कर सकती है और कई छोटे, केंद्रित हिस्सों से व्यवहार का संयोजन कर सकती है।
module Swimmable; def swim; "swimming"; end; end
module Runnable; def run; "running"; end; end
class Athlete
include Swimmable
include Runnable
end
a = Athlete.new
puts a.swim
puts a.runसब कुछ एक साथ
मिक्सिन लचीले ढंग से व्यवहार साझा करते हैं:
- इंस्टेंस विधियों के लिए
include। - क्लास या एकल-ऑब्जेक्ट विधियों के लिए
extend। - मिक्सिन विधियाँ मेज़बान के संदर्भ में चलती हैं।
- कई छोटे मॉड्यूल का संयोजन कीजिए।
module Greet
def hi; "hi from #{self.class}"; end
end
class Cat; include Greet; end
puts Cat.new.hiत्वरित जाँच
include और extend के बारे में अपनी समझ जाँचिए।
पुनरावलोकन
आपने मिक्सिन के बारे में सीखा:
include=> इंस्टेंस विधियाँ।extend=> क्लास या एकल-ऑब्जेक्ट विधियाँ।- मिक्सिन विधियाँ मेज़बान के संदर्भ में चलती हैं।
- शामिल किए जाने पर
includedहुक चलता है।
module Loud
def shout(s); s.upcase; end
end
class Speaker; include Loud; end
puts Speaker.new.shout("hello")एआई शिक्षक के साथ Ruby सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 29
- पाठ
- 109
अक्सर पूछे जाने वाले प्रश्न
क्या “include और extend” पाठ निःशुल्क है?
हाँ — Ruby Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “include और extend” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Ruby Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“include और extend” में मैं क्या सीखूँगा?
व्यवहार को mix in करना आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Ruby Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Ruby Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Ruby Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“include और extend” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Ruby Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Ruby Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।