コードを読みやすくするために、名前付きグループ (名前が指定されたキャプチャ グループ) をより頻繁に使用しようとしています。
case
私はステートメントのためにそれを行う方法を考え出そうとしています:
date_field = "Wk 9"
date = case date_field
when /^Wk (?<weeks>\d+)$/ then 7 * Integer(weeks)
else raise "Unexpected date_field #{date_field.inspect}"
end
私にくれます
NameError: undefined local variable or method `weeks' for main:Object
ようではない
date_field = "Wk 9"
/^Wk (?<weeks>\d+)$/ =~ date_field
date = 7 * Integer(weeks)
date # => 63
case ステートメントから名前付きグループを作成する方法はありますか?
私が見つけることができる最も類似した質問: How to write a Ruby switch statement (case...when) with regex and backreferences? $1
、しかし受け入れられた答えはtoの使用についてのみ話し$9
ます。