我正在写一个 Array#map!
方法,而这个方法应该接受一个 proc。
def map!(&blck)
(0..self.length-1).each do |i|
self[i] = blck.call(i)
end
self
end
如果proc接受1个参数就可以了,但如果有几个参数就不行了(或者它接受的是字符而不是索引)。 两个proc的例子。
prc1 = Proc.new do |ch|
if ch == 'e'
'3'
elsif ch == 'a'
'4'
else
ch
end
end
和
prc2 = Proc.new do |ch, i|
if i.even?
ch.upcase
else
ch.downcase
end
end
有什么方法可以做到这一点吗?