i

问题描述 投票:0回答:1

我正在写一个 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

有什么方法可以做到这一点吗?

arrays ruby proc
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.