title: Ruby: Why don't I get nil when using the safe navigation operator
body: <p>I have read about the safe operator. The way I understand it, is that it will call a method on an object but we get nil if that object doesn't exist.</p>
  
  <pre><code>2.3.1 :001 &gt; 123&amp;.to_s
   =&gt; "123" 
  </code></pre>
  
  <p>But when I try using it when calling a method on an object that doesn't exist, I get:</p>
  
  <pre><code>2.3.1 :003 &gt; foo&amp;.to_s
  NameError: undefined local variable or method `foo' for main:Object
  Did you mean?  fork
      from (irb):3
      from /Users/duncan/.rvm/rubies/ruby-2.3.1/bin/irb:11:in `&lt;main&gt;'
  </code></pre>
  
  <p>What am I doing wrong? Have I misunderstood the &amp; operator?</p>