x = "hello" " world".to_sym
puts x.class
これは動作し、私は出力を生成し、シンボルに2つの文字列を連結することができます:この連結での操作の順序は何ですか?
Symbol
しかし、私は+の代わりにハロー、世界の文字列を分離するスペースを使用するように、わずかにそれを変更した場合、私はエラーを取得する:
x = "hello" + " world".to_sym
puts x.class
これは、次のエラーを生成します - 私は「こんにちは」の文字列にそれを連結する前に、文字列にコールバック.to_sym「キャスト」「世界」にしようとしているためであると思います:
in `+': can't convert Symbol into String (TypeError)
最初の例の作業は何ですか??誰が操作の順序がここにあるのか知っていますか?私は2つの文字列が実際には1つのものとして扱われ、それらの間のスペースは無視され、to_symメソッドが呼び出される前にそれらが連結されていると思われます。私は実際には、 "hello"と "world"の内容を結合しようとする前にto_symが "world"文字列で呼び出されると考えていたので、2番目の例と全く同じように動作することを期待していました。だから、これはto_sym
前に、最初に発生
x = "Here is a string that " \
"I want to split across " \
"several lines..."
: