2017-10-19 18 views
0

とシャベル演算子を理解しようとすると:100ファイル私はkoans/about_strings.rbで<a href="http://rubykoans.com/" rel="nofollow noreferrer">http://rubykoans.com/</a></p> <p>を通じてつもりだ文字列

def test_the_shovel_operator_modifies_the_original_string 
    original_string = "Hello, " 
    hi = original_string 
    there = "World" 
    hi << there 
    assert_equal "Hello, World", original_string 

    # THINK ABOUT IT: 
    # 
    # Ruby programmers tend to favor the shovel operator (<<) over the 
    # plus equals operator (+=) when building up strings. Why? 
    end 

私はoriginal_stringが等しいと思うだろうが、これは、合格「こんにちは」とHIは「こんにちは、世界」

に等しくなることを私はこのポスターは、同様の質問を持っていた見た、しかしかなり:

Why is the shovel operator (<<) preferred over plus-equals (+=) when building a string in Ruby?

何が欠けていますか?

+1

? – Stefan

+0

私は文字列を連結するために使用されるシャベル演算子を見たことがありません。もっと一般的なテクニックには、 "#{hi}#{there}}"や "[hi、there] .join'があります。再び3行で – moveson

+0

ルック:3行目にあなたは* * *それら同じをするために*ルビーを教えて!したがって、彼らは同じ*です。 –

答えて

1

あなたがhi = original_stringを設定すると、あなたのhi変数は、単に新しい変数が同じオブジェクトで指されます。あなたはhi.object_idoriginal_string.object_idを見れば、あなたは彼らが同じであるでしょう。あなたは original_stringに影響を与えることなく操作できるオブジェクトのクローンをたい場合は、hi = original_string.cloneまたはhi = original_string.dupのような何かを言う必要があります。用語「シャベル演算子を」造語

関連する問題