Ruby 2.5 系列第一个稳定版本发布,新版包括了一系列新的特性和性能改进。主要变化包括:rescue/else/ensure 允许直接与 do/end 块使用,yield 增加 yield_self,Struct.new 能创建接受关键字参数的类,最高级常量查询不再可用,移除所有 trace 指令提升 5-10% 性能,SecureRandom 将更偏向使用操作系统提供的 SSL 库等。
此版本包括数个新特性和性能提升,例如:
yield_self 来使用当前上下文 yield 代码块。不同于 tap,此方法会返回代码块的运行结果。[功能 #6721]require "pp" 来加载。[功能 #14123]trace 指令提升了大约 5-10% 的性能。trace 指令的引入是为了提供 TracePoint的支持。然而,在大多数情况,TracePoint 不会被用到,trace 指令增加了额外的开销。作为替代,我们实现了一个动态指令技术,详情见 [功能 #14104]。def foo(&b); bar(&b); end)的性能相较于 Ruby 2.4 提升了约 3 倍。[功能 #14045]Array#concat, Enumerable#sort_by, String#concat, String#index, Time#+ 等。Thread.report_on_exception 默认值现为 true,这对调试多线程程序很有帮助。[功能 #14143]自 Ruby 2.4.0 以来,已有 6158 个文件更改,348484 行增加(+),82747 行删减(-)!
圣诞快乐!享受你 Ruby 2.5 的编程之旅吧!