1

是否可以在不先将其转换为字符串的情况下拆分符号?例如,我试过

:split_this.split("_")

它只返回一个错误。我查看了Symbol 类参考,但所有示例都to_s用于将其转换为字符串。

我知道我可以将它转换为字符串,拆分它,然后将两个子字符串转换为符号,但这似乎有点麻烦。有没有更优雅的方法来做到这一点?

4

2 回答 2

3

从 Ruby 1.9 开始,一些字符串的特性被添加到Symbol类中,但没有那么多。我认为你能做的最好的是:

:symbol_with_underscores.to_s.split('_').map(&:to_sym)

你可以把它变成一个Symbol方法:

class Symbol
  def split(separator)
    to_s.split(separator).map(&:to_sym)
  end
end

:symbol_with_underscores.split('_')
# => [:symbol, :with, :underscores]
于 2013-05-08T10:14:42.017 回答
3

将符号视为数字。因为符号在内部存储为int numbers。因此他们没有与字符串相关的方法。

于 2013-05-08T10:40:01.960 回答