[ruby-list:50884] パターンマッチングの値について
From:
OOTANI TAKASHI <tksotn@...117.cx>
Date:
2020-05-10 11:10:36 UTC
List:
ruby-list #50884
大谷と申します。
Ruby2.7のパターンマッチングなのですが、
A in B
の値は、マッチが成功したときに nil になるのはどういう意図なのでしょうか?
これが、成功時に真値を返してくれると、
data = [{name: "taro", age: 10},{name: "jiro", age: 8}]
age = nil
out = data.select{|x| x in {name: "taro", age: age} rescue nil}
p age #=> 10
p out #=> [{name: "taro", age: 10}]
や、
if (data[0] in {name: "taro", age: age} rescue nil)
p age
end
と書けますが、現状は nil なので、
out = data.reject{|x| x in {name: "taro", age: age} rescue true}
と論理が逆になってしまいます。
そういう所は、パターンマッチングの使いどころじゃないと言うことなのでしょうか。
--
tksotn