引入模式匹配

Ruby 2.7.0
稳定版在圣诞节当天发布了,此版本引入了许多新特性和性能改进,最值得注意的包括:

Ruby 2.7.0 preview 2 已经发布了,最终版本计划在 12
月发布。该版本引入了一些新特性和性能改进,主要是:

  • 模式匹配(Pattern Matching)
  • REPL 改进
  • 紧凑 GC(Compaction GC)
  • 位置参数和关键字参数的分离
  • Compaction GC
  • Pattern Matching
  • REPL improvement
  • Separation of positional and keyword arguments

模式匹配(实验性功能)

模式匹配是函数式编程语言中广泛使用的特性,如果匹配某一个模式,它可以遍历给定的对象并分配其值,目前尚处于实验阶段 [Feature
#14912]:

require "json"

json = <<END
{
  "name": "Alice",
  "age": 30,
  "children": [{ "name": "Bob", "age": 2 }]
}
END

case JSON.parse(json, symbolize_names: true)
in {name: "Alice", children: [{name: "Bob", age: age}]}
  p age #=> 2
end

有关该功能的具体细节请查看 Pattern matching – New feature in Ruby
2.7。

Compaction GC 

永利集团304com,REPL 改进

绑定的交互式环境 irb 现在支持多行编辑,由 reline 提供支持,reline
是一种与 readline 兼容的纯 Ruby 实现。它还提供了 rdoc 集成。在 irb
中,可以显示给定类、模块或方法的引用。此外,binding.irb
中显示的源代码行和核心类对象的检查结果现在以颜色区分显示。

永利集团304com 1

这个版本引入了 Compaction
GC,以碎片化内存空间。GC.Compact 方法对堆进行压缩,这个函数压缩堆中的活动对象,以使用更少的页,并且堆会更友好。

紧凑 GC(Compaction GC)

紧凑 GC 可以对碎片化的内存空间进行碎片整理。一些多线程 Ruby
程序可能会导致内存碎片,从而导致高内存使用率和速度下降。引入了
GC.compact
方法来压缩堆,此函数压缩堆中的活动对象,以便可以使用更少的页,并且堆可能对
CoW 更友好。

Pattern Matching(实验性)

发表评论

电子邮件地址不会被公开。 必填项已用*标注