0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ruby 2.7.0 で個人的にグッときた新機能をちょっぴり試してみた

Posted at

概要

Ruby 2.7.0 で導入された新機能のうち,次の機能を試してみた.

  • irb での複数行編集
  • パターンマッチ1

詳細

irb での複数行編集

Ruby 2.6 までの対話環境 Interactive Ruby でも複数行の関数などを記述することはできたが

  • 一度改行したら前の行に戻れない
  • そもそも見づらい

といった問題点が存在した.

Ruby 2.6 までの複数行編集

しかしRuby 2.7 からは,改行しても前の行に戻ることができ,見た目もわかりやすくなった.

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])

参考

  1. 関数型言語で広く使われている機能.今回のバージョンで実験的に導入された.

  2. 非負整数に対してその階乗を返す関数である.
    をパターンマッチを用いて記述すると次のようになる.

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?