为什么 `Symbol#match` 的行为不同于 `String#match` 和 `Regexp#match`?

Why does `Symbol#match` behave differently from `String#match` and `Regexp#match`?

String#match and Regexp#match return a MatchData 匹配成功时:

"".match(//) # => #<MatchData "">
//.match("") # => #<MatchData "">
//.match(:"") # => #<MatchData "">

但是Symbol#match return是匹配位置(如String#=~):

:"".match(//) # => 0

为什么 Symbol#match 表现不同?有用例吗?

我将其报告为 Ruby 核心中的错误:https://bugs.ruby-lang.org/issues/11991。让我们看看他们会怎么说。


更新 被质疑的行为似乎是一个错误。似乎从 Ruby 2.4 开始,Symbol#match 将在匹配成功时 return 一个 MatchData 实例。