title: In Ruby, what's the relationship between 'new' and 'initialize'? How to return nil while initializing?
body: <p>What I want is:</p>
  
  <pre><code>obj = Foo.new(0)  # =&gt; nil or false
  </code></pre>
  
  <p>This doesn't work:</p>
  
  <pre><code>class Foo
    def initialize(val)
      return nil if val == 0
    end
  end
  </code></pre>
  
  <p>I know in C/C++/Java/C#, we cant return a value in a constructor.</p>
  
  <p>But I'm wondering whether it is possible in Ruby.</p>