简化方法返回,tap的使用

好比:ruby

def get_apples
    result = []

    5.times do |i|
        result << i*i
    end

    return result
end

这个方法返回的是一个列表,在计算过程当中,要往这个列表添加一些元素,那么代码通常都是这么写的,总感受不是很ruby,实际上是能够有个方法简化这类代码的,就是使用tap方法,tap是Object的方法,全部ruby对象都继承了下来,其源码实现很简单:app

def tap
  yield self
  self
end

咱们来改写开始那个方法,用tap,能够一步到位:code

def get_apples
    [].tap do |result|
        5.times do |i|
            result << i*i
        end
    rend
end

有些性感了。对象

其实,返回的结果若是是string, array, hash等均可以用这个方法简化代码。继承

相关文章
相关标签/搜索