title: How to concatenate two strings into the third string without copying?
body: <p>I'm new to Rust and I'm currently reading The Rust Programming Language book.</p>
  <p>I'm curious about this example:</p>
  <pre><code>fn main() {
      let s1 = String::from(&quot;Hello, &quot;);
      let s2 = String::from(&quot;world!&quot;);
      let s3 = s1 + &amp;s2; // note s1 has been moved here and can no longer be used
  }
  </code></pre>
  <p>Is it possible to take ownership not only of <code>s1</code>, but also of <code>s2</code>, so <code>s2</code> gets invalidated as well as <code>s1</code>, making <code>s3</code> the only possible variable that remains usable?</p>