<div dir="ltr">On 4 October 2017 at 13:41, Alex Blewitt <span dir="ltr">&lt;<a href="mailto:alblue@apple.com" target="_blank">alblue@apple.com</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><span class="gmail-"><div><br></div></span><div>The difference between the &amp; and &amp;&amp; operators isn&#39;t to do with the implicit conversions; it&#39;s to do with whether both sides of the expression are evaluated or not.</div><div><br></div><div>false &amp;&amp; system(&#39;rm -rf&#39;)</div><div><br></div><div>You really don&#39;t want to do that if both sides are executed ...</div></div></blockquote><div><br></div><div>actually, thanks for bringing this up as it leads up to a question:</div><div><br></div><div>how in swift do i define my &amp;&amp;&amp; operator (that i may need for whatever reason, e.g. logging) that will short-circuit</div><div>the calculation of right hand side if the left hand side is false?</div><div><br></div><div><div>infix operator &amp;&amp;&amp;: LogicalConjunctionPrecedence</div><div><br></div><div>func &amp;&amp;&amp;(left: Bool, right: Bool) -&gt; Bool {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>return left &amp;&amp; right</div><div>}</div></div><div><br></div><div>as written it doesn&#39;t short-circuit. is it possible at all in swift?</div><div><br></div><div>Mike</div><div><br></div></div></div></div>