拆分符号,与拆分符号的方式相同

时间:2013-05-08 10:07:50

标签: ruby split symbols

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

:split_this.split("_")

并且它只返回错误。我查看了Symbol class reference,但所有示例都使用to_s将其转换为字符串。

我知道我可以将它转换为字符串,拆分它,并将两个子串转换为符号,但这看起来有点麻烦。有更优雅的方式吗?

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分:3)

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