最初に文字列に変換せずにシンボルを分割することは可能ですか? たとえば、私は試しました
:split_this.split("_")
エラーを返すだけです。Symbol class referenceを調べましたが、すべての例to_s
でそれを文字列に変換しています。
文字列に変換し、分割し、2 つの部分文字列をシンボルに変換できることはわかっていますが、それは少し面倒に思えます。これを行うよりエレガントな方法はありますか?
最初に文字列に変換せずにシンボルを分割することは可能ですか? たとえば、私は試しました
:split_this.split("_")
エラーを返すだけです。Symbol class referenceを調べましたが、すべての例to_s
でそれを文字列に変換しています。
文字列に変換し、分割し、2 つの部分文字列をシンボルに変換できることはわかっていますが、それは少し面倒に思えます。これを行うよりエレガントな方法はありますか?
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]
記号を数字と考えてください。シンボルはint 数値として内部的に格納されるためです。したがって、文字列関連のメソッドはありません。