प्रश्न के शीर्षक की भयंकरता यह है कि मैं हल करने की कोशिश कर रहा हूं। उदाहरण:रूबी मिश्रित के इंटरफ़ेस प्रदान करने के लिए "आवश्यक" विधियों को कैसे ढूंढें?
रूबी में, Enumerable एक अर्थ में एक अंतरफलक है कि मैं कुछ को लागू करने और के रूप में यह दस्तावेज़ कर सकते हैं:
def myfancymethod(please_pass_me_an_Enumerable_here)
लेकिन दूसरी ओर, Enumerable इंटरफ़ेस है कि के प्रवर्धन की तरह है #each इसके तरीकों में से एक के रूप में। अगर मैं एक वर्ग
class Foo
def each
:bar
end
end
रूबी के साथ अपरिचित उन लोगों के लिए, यदि आप mixin Enumerable मॉड्यूल एक कक्षा में, आपको लगता है कि केवल #each
विधि पर भरोसा करते हैं #map
, #select
तरह बातें प्रदान करने के लिए तरीकों के दर्जनों मिल, आदि
मैं कह सकता हूं कि मेरी Foo
कक्षा संख्यात्मक-सक्षम या संख्यात्मक-संगत या क्या है? कौन-से शब्द का उत्तर का वर्णन "क्या यह एक Enumerable होने के लिए ले करता है?", रूबी में, इसी प्रकार
"ठीक है आप #each करना होगा"
(Array.new.methods - Object.new.methods).size # 111
कि कि नकली किसी सरणी के लिए इसका मतलब यह है इंटरफेस, मुझे 111 तरीकों को लागू करना है? कोई रास्ता नहीं, लेकिन मैं कैसे पता लगा सकता हूं कि ऐरे के "सार" क्या तरीके हैं। क्या यह सिर्फ #[]
, #[]=
और #size
है? इसका अर्थ कैसे बनाया जाए?
क्या इस शब्द के बारे में आपका प्रश्न है? या "आवश्यक" तरीकों को कैसे ढूंढें? –
मुझे लगता है कि इंटरफेस वाली भाषा में जवाब देना बहुत आसान होगा। – Russell
@ बाद में सर्जियो टुल्वेंटसेव अद्भुत होगा। मुझे अभी भी पता नहीं है कि "आवश्यक" ActiveRecord या Array विधियां क्या हैं। – ulver