構文とセマンティクスの変更
 注:以下の単語ブロックはProcとlambdaの両方を意味します。この簡単な概要では微妙な違いは役割を果たさないため、「 =>
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     」を使用することは言語の一部ではなく、最後のコンストラクトが返す結果を意味します 
      ブロックを書く新しい方法
fun = ->(a, b){ a + b } 
      
        
        
        
      
    
      
      の代わりに
      
        
        
        
      
     fun = lambda{|a,b| a + b } 
      
        
        
        
      
    
      
      この機能は「非常に実験的」とマークされており、最も物議を醸すアイデアの1つであり、実際、大量に使用するとコードを読みにくくする可能性があります。
ブロックを呼び出す新しい方法
fun.(2,5)
      
      2つの古い方法に加えて:
fun.call(2,5) # 1 
      
        
        
        
      
     fun[2,5] # 2 
      
        
        
        
      
    
      
      この方法は1より短く、2より明白です。私の意見では、安定したバージョンに含める価値があります。
ブロックパラメーター
ブロックのパラメーターはローカルになりました(私にとっては、おそらくルーブルで最も頻繁なレーキ)。 これで、これ(1.8のコード)は二度と起こりません:
i = 42 
      
        
        
        
      
     10.times{|i| puts i } 
      
        
        
        
      
     i 
      
        
        
        
      
     => 10 
      
        
        
        
      
    
      
      i
      
      の値は42のままです。この変更は1.8との非互換性を意味しますが、安定バージョンで採用される可能性があります。
新しい方法
with_index
Enumerator
      
      には非常に便利な
with_index
      
      メソッドがあり、同じアクションを実行する別の
Enumerator
      
      に変換できますが、追加の引数-インデックスも渡します。 たとえば、次のコードは配列から3番目ごとに要素を選択します。
[1,3,4,6,5,6].select.with_index{|v,i| (i+1)%3 == 0 } 
      
        
        
        
      
     => [4, 6] 
      
        
        
        
      
    
      
      この考え方はルビーの一般的なイデオロギーとよく一致し、
each_with_index
      
      ような特別なメソッドの必要性を排除します。 これにより、追加のループ変数が不要になり、コードがより簡単で安全になります。
時間と整数のトリビア
時間は、ルビースタイルに非常によく適合する7つの新しいメソッドを追加しました。 どのものを推測してみてください-知っている人にとっては、ルビーは難しくないはずです。
Time.now.sunday? 
      
        
        
        
      
     => false 
      
        
        
        
      
     Time.now.thursday? 
      
        
        
        
      
     => true 
      
        
        
        
      
    
      
      同様に、
odd?
      
      メソッドがIntegerに追加されました
odd?
      
      そして
even?
      
      1.odd? 
      
        
        
        
      
     => true 
      
        
        
        
      
     3.even? 
      
        
        
        
      
     => false 
      
        
        
        
      
    
      
      nil?
      
      メソッドを含む言語の論理的な拡張
nil?
      
      zero?
      
      。
シンボル#to_proc
シンボルはデフォルトで機能するようになり、ブロックに変換されます。 今、あなたは書くことができます:
["one", "two", "three"].map(&:capitalize) 
      
        
        
        
      
     => ["One", "Two", "Three"] 
      
        
        
        
      
    
      
      ただし、これは古いバージョンで実行できますが、追加のライブラリコードが必要です。
これは、Rubyの実験版のレビューであり、バージョン2.0の大部分を決定するレビューであることを繰り返します。 より速く、小さく、安全で、他のアプリケーションに簡単に組み込むことが計画されています。
変更がさらに行われました。ここで詳細な説明を見つけることができます。