簡化方法返回,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等均可以用這個方法簡化代碼。繼承

相關文章
相關標籤/搜索