好比: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等均可以用这个方法简化代码。继承