String#match
và Regexp#match
trả về một MatchData
khi trận đấu thành công:Tại sao `Symbol # match` hoạt động khác với` String # match` và `Regexp # match`?
"".match(//) # => #<MatchData "">
//.match("") # => #<MatchData "">
//.match(:"") # => #<MatchData "">
Nhưng Symbol#match
trả về vị trí phù hợp (như String#=~
):
:"".match(//) # => 0
Tại sao Symbol#match
cư xử khác nhau? Có trường hợp sử dụng không?
Quyết định rất lạ ... – ndn
Câu hỏi hay. Ít nhất nó được đề cập trong tài liệu cho 'Symbol # match': _Returns sym.to_s = ~ obj_. Vì vậy, nó là mục đích. – knut
Bằng cách nào đó liên quan: http://stackoverflow.com/questions/4884242/why-does-ruby-not-symbol-regex-match-operator – knut