String#match
和Regexp#match
会返回MatchData
:
"".match(//) # => #<MatchData "">
//.match("") # => #<MatchData "">
//.match(:"") # => #<MatchData "">
但是Symbol#match
会返回匹配位置(例如String#=~
):
:"".match(//) # => 0
为什么Symbol#match
表现不同?有用例吗?
答案 0 :(得分:1)
我将其报告为Ruby核心中的错误:https://bugs.ruby-lang.org/issues/11991。让我们看看他们会说些什么。
<强>更新强>
质疑的行为似乎是一个错误。似乎从Ruby 2.4,Symbol#match
将在匹配成功时返回MatchData
实例。