概要
Ruby 2.7.0 で導入された新機能のうち,次の機能を試してみた.
-
irb
での複数行編集 - パターンマッチ1
詳細
irb
での複数行編集
Ruby 2.6 までの対話環境 Interactive Ruby でも複数行の関数などを記述することはできたが
- 一度改行したら前の行に戻れない
- そもそも見づらい
といった問題点が存在した.
しかしRuby 2.7 からは,改行しても前の行に戻ることができ,見た目もわかりやすくなった.
パターンマッチ
前節で例として用いた次の関数2
def fact(n)
if n == 0
return 1
else
return n * fact(n - 1)
end
end
def fact(n)
case n
in 0
return 1
in _
return n * fact(n - 1)
end
end
この例だとパターンマッチの有難みがわかりにくいので,次の例も挙げておく.
def arymatch(ary)
case ary
in [0, [a, b, c]]
p a
p b
p c
end
end
下記は arymatch
の実行例である.
> arymatch([0, [1, 2, 3]])
1
2
3
=> 3
> arymatch([0])
...(中略)...
NoMatchingPatternError ([0])