6
String#match
當匹配成功Regexp#match
返回MatchData
:爲什麼`Symbol#match`的行爲與`String#match`和`Regexp#match`不同?
"".match(//) # => #<MatchData "">
//.match("") # => #<MatchData "">
//.match(:"") # => #<MatchData "">
但Symbol#match
返回匹配位置(如String#=~
):
:"".match(//) # => 0
爲什麼Symbol#match
行爲不同?有用例嗎?
很奇怪的決定確實... – ndn
很好的問題。至少在「符號#匹配」的文檔中提到:_Returns sym.to_s =〜obj_。所以這是目的。 – knut
不知何故相關:http://stackoverflow.com/questions/4884242/why-does-ruby-not-symbol-regex-match-operator – knut