<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">This is related to a question I asked on SO a while back:&nbsp;<a href="http://stackoverflow.com/questions/26172911/swift-nil-has-a-numeric-value">http://stackoverflow.com/questions/26172911/swift-nil-has-a-numeric-value</a></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">Seems that many others have had confusion with the same problem, and it can sneak into your code without being aware of it. The simple case that I ran into was comparing an Optional Int to an Int. It is a very subtle bug and one that I don’t think should be allowed to occur. To me the intent isn't clear in this situation. I don’t think nil should be considered true or false if compared against. The only alternative I can think of is if comparing anything to a nil value, the result would be false; this would probably still lead to unexpected behavior though.</div> <br> <div id="bloop_sign_1449659971674371072" class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">Lucas Derraugh<br>lucas.derraugh@me.com</div><div style="font-family:helvetica,arial;font-size:13px">607-793-3517<span class="Apple-tab-span" style="white-space:pre">        </span></div></div> <br><p class="airmail_on">On December 9, 2015 at 6:10:40 AM, Al Skipp via swift-evolution (<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>) wrote:</p> <blockquote type="cite" class="clean_bq"><span><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div></div><div>


<title></title>


<blockquote type="cite" class="">
<pre style="white-space: pre-wrap; background-color: rgb(255, 255, 255);" class="">To me it seems logical that comparing Optional&lt;Int&gt; with Int (or another
Optional&lt;Int&gt;), if it's allowed at all, should return Optional&lt;Bool&gt;. Since
conditional statements only accept Bool, the user is forced to handle the
nil case explicitly.
</pre></blockquote>
<div class="">I disagree that comparing Optional values should have
a return value of Optional&lt;Bool&gt;.</div>
<div class="">If the following were to be true:</div>
<div class=""><br class=""></div>
<div class="">.None &lt; .Some(0) == .None</div>
<div class=""><br class=""></div>
<div class="">Then logically, this would be too:</div>
<div class=""><br class=""></div>
<div class="">[] &lt; [1,2,3] == []</div>
<div class=""><br class=""></div>
<div class="">I think most people would agree that the correct
result to that comparison should be ‘true’, not [].</div>
<div class=""><br class=""></div>
<div class="">When comparing ‘container’ types I think it’s
important to have a simple Bool result, otherwise things get very
peculiar (conceptually the Optional type is really just a container
with a maximum count of 1).</div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=jmhDxcaxa3uq2rlI6BgFHRrxrj-2Bs36SiRq7BRdjtWBvMfe1Bm7ILNxUSz6dnTlNGKB0U9un-2BJw43J8Eug-2B6e94KXSHEs43BltcCxCL6xHZ6Vz1je-2BF71w2PPuurExpuEpjqFTe40gYXr7THh6c-2BHg4bIcUB-2BLxd9Pi-2F2ACvc8lOR4hLv1rzUc-2FiNHhsHSn9RC2rrnH-2F5fsg2Df-2FFV-2BPEdyLAhCTgeivUcNNBL-2F6RjDE-3D" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;">


_______________________________________________<br>swift-evolution mailing list<br>swift-evolution@swift.org<br>https://lists.swift.org/mailman/listinfo/swift-evolution<br></div></div></span></blockquote></body></html>