yield_self 到 then

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]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容