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