+1 Ilya, if one was to be removed I'd remove force unwrap (and implicitly unwrapped optionals unless their type inference rules are fixed).<span></span><br><br>On Thursday, 17 December 2015, Rafael Costa via swift-evolution <<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I think like Jeremy Pereira.<div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I also am quite surprised that the overloading of the meaning of symbols is a serious issue. It’s natural for people to distinguish the meaning of things by context. C programmers don’t complain that they are always confusing pointer dereferencing with multiplication do they? No.</blockquote><div><br></div><div>It is used for two meanings? Yes. Does it cause THAT much of confusion? No. I really think the way we're going today is just fine. Just an opinion though.</div><br><div class="gmail_quote"><div dir="ltr">On Wed, Dec 16, 2015 at 1:28 PM Dennis Lysenko via swift-evolution <<a href="javascript:_e(%7B%7D,'cvml','swift-evolution@swift.org');" target="_blank">swift-evolution@swift.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ilya, +1. I have seen maybe 3-4 force unwraps in a 20,000 lines-of-swift codebase. There is no need for them in practice when you use optional binding. <br><br><div class="gmail_quote"><div dir="ltr">On Wed, Dec 16, 2015, 9:33 AM ilya via swift-evolution <<a href="javascript:_e(%7B%7D,'cvml','swift-evolution@swift.org');" target="_blank">swift-evolution@swift.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="white-space:pre-wrap">Well the best way to make sure there is no confusion is to discourage the usage of both operators.<br><br>Every time there's an expression that contains an excessive number of !s it can be refactored by extracting separate variables, using non forced unwrapping, comparing with true and false etc. <br><br>Not sure a syntactic change is warranted. </div><br><div class="gmail_quote"><div dir="ltr">On Wed, Dec 16, 2015 at 17:04 Yichen Cao via swift-evolution <<a href="javascript:_e(%7B%7D,'cvml','swift-evolution@swift.org');" target="_blank">swift-evolution@swift.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Instead, I prefer the force unwrap to be another character other than the negate operator. It makes no sense to have the negation operator be universal and suddenly introduce the force unwrap with the same character.</div><div style="word-wrap:break-word"><br><div>
<br><span style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">Yichen</span>
</div>
<br></div>_______________________________________________<br>
swift-evolution mailing list<br>
<a href="javascript:_e(%7B%7D,'cvml','swift-evolution@swift.org');" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=8CZIdLciSFC-2BO5jF-2FiP8qN7dBFsgCUZ50wdTsolcRPclzgCbDzJ0j6zPnvyk7fMM28lSln-2BFUNH-2Bn0x5bLihI7hhFWewVNtfCSdHsYbwbMyWMzsz7j9zWqy9cnygU9HoiLtHxClB-2BSv-2BSN0R0jM9e-2BMzjt4jzEFJUrSjplFn6STymQG3aqPGlmcsAPOYVNEh-2FpRgE10haCaYSxtPXobIb3FkyYD2fpOOdQEjcFJ8YlI-3D" alt="" width="1" height="1" border="0" style="min-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>
<a href="javascript:_e(%7B%7D,'cvml','swift-evolution@swift.org');" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=3GEjPxJ3WsP8IaZacR37iABoB5-2F-2FrTer2Ls6soI5FsShlJw0QvIfPFnyRohyUzYoBV6NOtxHwFfy9TsB8s4E8C-2BXoRfMx021CJt3a-2FVUOKJxD4CeQ0jgrhB0WI9w-2BnG6N51oXKXhEPUQa7mHFvqbemuVHMfQosuwPeuv4cvh4ofMRI7VdLqDi0rYXHmBsnywWGLAntfVyhAiIMzKJ2krMJ0OsZCOWZpLQRWdiThcG5A-3D" alt="" width="1" height="1" border="0" style="min-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>
<a href="javascript:_e(%7B%7D,'cvml','swift-evolution@swift.org');" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></div></div></div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=pQw7h83fWt3LLbgkfL4TSUL0weaZnVFZxDe5GShw4uRQ8qm6dOTEahNWClXaSXquj6X5AHT831PRjcW0VUzkhyhcHSZNYoIovW2ZwGd9hamF9gN4JlmDF6XtDySZA9K4HOMrabEWL937FqMiod3AY56q5rw7PzEc3Naa767i5d7NRRSq-2BnKD6RnzemJQSdCkfcGENt1Llpe9hGanpr6s1urBQn4OeQrWzbklrJV-2Be4Y-3D" alt="" width="1" height="1" border="0" style="min-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">
</blockquote>