String#match
e Regexp#match
restituire una MatchData
quando riesce partita:Perché `Simbolo # corrisponde? Si comportano diversamente da` String # match` e `Regexp # match`?
"".match(//) # => #<MatchData "">
//.match("") # => #<MatchData "">
//.match(:"") # => #<MatchData "">
Ma Symbol#match
restituisce la posizione partita (come String#=~
):
:"".match(//) # => 0
Perché Symbol#match
comportarsi in modo diverso? C'è un caso d'uso?
Decisamente una decisione davvero strana ... – ndn
Bella domanda. Almeno è menzionato nella documentazione per 'Symbol # match': _Returns sym.to_s = ~ obj_. Quindi è uno scopo. – knut
In qualche modo correlato: http://stackoverflow.com/questions/4884242/why-does-ruby-not-symbol-regex-match-operator – knut