Ruby 4-1-2

こんにちは!

冷やしすぎに注意。

条件分岐 part2

前回の続きです。

pattern_basic.rb
Image from Gyazo

Image from Gyazo

case..inで表すパターンマッチングという構文です。

pattern_variable.rb
Image from Gyazo

Image from Gyazo

in条件式の中に変数をを含めることができます。

pattern_hash.rb
Image from Gyazo

Image from Gyazo

ハッシュをパターンマッチングすることも可能です。
ハッシュは部分マッチのため、statusやvalue以外のキーがあっても大丈夫です。

pattern_cond.rb
Image from Gyazo

Image from Gyazo

パターンには型や範囲なども指定することができます。

pattern_ignore.rb
Image from Gyazo

Image from Gyazo

「_」を用いて要素の有無のみを判定します。

pattern_ignore_hash.rb
Image from Gyazo

Image from Gyazo

ハッシュでも「_」を利用することができます。

pattern_rest.rb
Image from Gyazo

Image from Gyazo

pattern_rest2.rb
Image from Gyazo

Image from Gyazo

アスタリスクを用いて、配列の残りの要素を表すことができます。

pattern_rest_find.rb
Image from Gyazo

Image from Gyazo

Ruby 3.0では、先頭と末尾に限って複数のアスタリスクを認識できるようになりました。
ですが、まだ実験的機能の扱いらしく警告が発生しています。

pattern_rest3.rb
Image from Gyazo

Image from Gyazo

単にアスタリスクを配置することで、ほかの要素を無視できます。

pattern_rest_hash.rb
Image from Gyazo

Image from Gyazo

アスタリスクを二つ用いてハッシュの残りの要素を取得できます。
配列と違い、パターンの末尾にしか指定できません。

pattern_guard.rb
Image from Gyazo

Image from Gyazo

その値そのものでも絞り込みを行う場合、if節を付与することができます。

pattern_assign.rb
Image from Gyazo

Image from Gyazo

「=>」を利用することで、マッチングした構造の一部、または全体を変数に代入できます。

pattern_omit.rb
Image from Gyazo

Image from Gyazo

結果の代入だけであるなら、1行で表すことが可能です。

前回から色々なパターンを確認しました。
まずはしっかりと理解を深めていきたいと思います。

ではでは。