Rubyはpreview1リリース2.7.0、このバージョンは、多くの新機能とパフォーマンスの向上を導入し、最も注目すべきは、以下のとおりです。
- 圧縮GC
- パターンマッチング
- REPL改善
圧縮GC
いくつかのマルチスレッドRubyプログラムは、高いメモリ使用量及び減速をもたらす、メモリの断片化につながる可能性があります。
このリリースには、圧縮GCを導入し、デフラグするメモリ空間を断片化することができます。
パターンマッチング[実験]
パターンマッチングは、指定されたオブジェクトを横断して、パターンに一致したときにその値を割り当てることができる実験的な機能として導入されます。
case JSON.parse('{...}', symbolize_names: true)
in {name: "Alice", children: [{name: "Bob", age: age}]}
p age
...
end
REPL改善
IRB、バンドルされてインタラクティブな環境(REPL;読む-EVAL-PRINT-ループ)、今で複数行の編集をサポートしています。それは裏装材、readlineの純粋なRubyの実装のサポートと互換性があります。また、RDOCの統合を提供します。IRBでは、参照は、特定のクラスまたはモジュールメソッドに表示することができます。さらに、オブジェクトのソース線、及び試験結果コアクラスは現在、着色されbinding.irb表示しました。
その他の新機能
- 導入参照演算子の実験方法
.:
- 実験組み込まれ、デフォルトのパラメータ番号パラメータ
- 無制限のスコープの実験的導入
ary[..3] # identical to ary[0..3]
rel.where(sales: ..100)
- 追加されました
Enumerable#tally
、それは各要素の出現回数を計算することができます
["a", "b", "c", "b"].tally
#=> {"a"=>1, "b"=>2, "c"=>1}
アップデートには、詳細はで見つけることができ、数多くのパフォーマンスの向上が含まれるリリースノート。