yield_self的作用
ruby 在 2.5.0 引入 了的方法
Kernel#yield_self
[Feature #6721]该方法的作用是是将 调用的对象当做对参数传到块中 然后将执行的代码块结果 返回
有点和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
yield_self 这个名字不是太好 Truck 14594 ,所以大佬们在 [Feature #14594] 将 yield_self的名字alias成了then
所以当前最新的 ruby-2.6.0-preview2 中 yield_self 已经使用新名字 then
c = [1, 2, 3].then { |x| x.dup << 4 }
# c = [1, 2, 3, 4]