मैं तकनीकी चित्रों (svg/ruby) के समाधान पर काम कर रहा हूं। मैं आयतों में हेरफेर करना चाहते हैं और इस वर्ग में एक add!
विधि है:रूबी में एक गहरी प्रति विधि क्यों नहीं है?
def add(delta)
r=self.dup/clone/"copy" # <-- not realy the 3 and no quotes, just in text here
r.add! delta
end
dup
और clone
नहीं है:
class Rect
def add!(delta)
@x1+=delta
... # and so on
self
end
end
मैं भी एक Rect
लौटने, लेकिन self
से छेड़छाड़ नहीं एक add
विधि की जरूरत है मेरी बात करें लेकिन:
def copy; Marshal.load(Marshal.dump(self)); end
करता है।
सादे रूबी में ऐसी बुनियादी कार्यक्षमता क्यों मौजूद नहीं है? कृपया मुझे यह न बताएं कि मैं add
और add!
को रिवर्स कर सकता हूं, add
नौकरी कर रहा हूं, और add!
इसे कॉल कर रहा हूं।
कॉपी करने का सबसे तेज़ तरीका है क्यों यह अस्तित्व में नहीं है? यह करता है: 'मार्शल डंप' + 'मार्शल.लोड'। क्या आप कुछ प्रोग्रामिंग भाषाओं का नाम दे सकते हैं जिनके पास भाषा स्तर पर गहरी प्रतिलिपि है? –
आपका मुद्दा, मुझे लगता है कि, मैं रूबी के साथ एक खराब बच्चे की तरह हूं, यहां सब कुछ ढूंढ रहा हूं, कि मैं अन्य स्थानों पर चूक गया :- – halfbit
"क्यों" यह सवाल Matz, et al के अलावा किसी अन्य के लिए कठिन/असंभव बनाता है। जवाब देने के लिए। –