Why ternary operator in swift is so picky? : <p>The question is very simple, but I just could not find the answer!</p>

<p>Why doesn't</p>

<pre><code>return x == 0? "" : "Hello"
</code></pre>

<p>compile but</p>

<pre><code>return x == 0 ? "" : "Hello"
</code></pre>

<p>does?</p>

<p>This is really weird because all the other operators don't need an extra white space. e.g.</p>

<pre><code>let x = 1+1
let y = 1 + 1
</code></pre>

<p>are the same.</p>

<p>I think it has something to do with optionals. But when you use a <code>?</code> operator on a variable, it must be used like this:</p>

<pre><code>let s: String? = nil
let x = s?.startIndex
</code></pre>

<p>I mean it must follow another operator, right?</p>
