我想编写一些改变调用对象的新Array方法,如下所示:
a = [1,2,3,4]
a.map!{|e| e+1}
a = [2,3,4,5]
......但是我在说明如何做到这一点。我想我需要一个新的大脑。
所以,我想要这样的事情:
class Array
def stuff!
# change the calling object in some way
end
end
图!只是一个例子,我想写一个完全新鲜的,而不使用任何预先存在的!方法
谢谢!
答案 0 :(得分:7)
编辑 - 更新了答案以反映您问题的更改。
class Array
def stuff!
self[0] = "a"
end
end
foo = [1,2,3,4]
foo.stuff!
p foo #=> ['a',2,3,4]
答案 1 :(得分:1)
def stuff!
self.something = 'something else'
end
bam,你修改了底层对象而没有返回一个新对象