6
String#match
とRegexp#match
マッチが成功した場合MatchData
を返す:`Symbol#match`は` String#match`と `Regexp#match`と異なった動作をするのはなぜですか?
"".match(//) # => #<MatchData "">
//.match("") # => #<MatchData "">
//.match(:"") # => #<MatchData "">
をしかし、マッチ位置(のようなString#=~
)をSymbol#match
返します
:"".match(//) # => 0
はなぜ異なっSymbol#match
振る舞いをしますか?ユースケースはありますか?
確かに非常に奇妙な決定... – ndn
良い質問。少なくとも、それは 'Symbol#match'のドキュメントに書かれています:_Returns sym.to_s =〜obj_。それは目的なのです。 – knut
何らかの形で関連しています:http://stackoverflow.com/questions/4884242/why-does-ruby-not-symbol-regex-match-operator – knut