yield_self的作用
该方法的作用是是将 调用的对象当做对参数传到块中 然后将执行的代码块结果 返回
有点和tap类似
tap是直接返回对象本身, yield_self 是执行代码块的结果返回
如:
a = [1, 2, 3].yield_self { |x| x.dup << 4 }
# a = [1, 2, 3, 4]
b = [1, 2, 3].tap { |x| x.dup << 4 }
# b = [1, 2, 3]
新名字then
所以当前最新的 ruby-2.6.0-preview2 中 yield_self 已经使用新名字 then
c = [1, 2, 3].then { |x| x.dup << 4 }
# c = [1, 2, 3, 4]