Ruby

yield_self 到 then

2018-11-16  本文已影响1人  得失的瘦马

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]
上一篇 下一篇

猜你喜欢

热点阅读