<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div><blockquote type="cite" class=""><div class="">On Dec 19, 2015, at 1:37 PM, ilya &lt;<a href="mailto:ilya.nikokoshev@gmail.com" class="">ilya.nikokoshev@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div style="white-space:pre-wrap" class="">I prefer <br class=""><br class="">if let vc = someInterestingViewConroller {<br class="">  vc.doSomething()<br class="">}<br class=""><br class=""></div></div></blockquote><blockquote type="cite" class=""><div class=""><div style="white-space:pre-wrap" class="">- Explicit is better than implicit<br class="">- shadowing is bad <br class="">- now there's no ambiguity about how to change the original property. <br class=""><br class=""></div></div></blockquote><div><br class=""></div><div><div class="">Creating a less descriptive short name in place of usually more descriptive name, which is already used throughout your code, is not “more explicit”. &nbsp;You’ve removed shadowing and instead created two separately name variables referring to the same value. You’ve created _more_ ambiguity, not less.</div><div class=""><br class=""></div><div class="">Also, for 1 line blocks of code, “vc” might be ok but blocks 20 lines long that contain other contrived names, just to remove shadowing, (e.g. “vc2”, using your example) is only going to make it worse.</div><div><blockquote type="cite" class=""></blockquote></div></div><br class=""><blockquote type="cite" class=""><div class=""><div style="white-space:pre-wrap" class="">Therefore I'm -1 on any proposal that hides explicit name binding and/or increases shadowing, including let foo and unwrap foo. <br class=""></div><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Sat, Dec 19, 2015 at 21:31 Kevin Wooten via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto" class=""><div class="">As much fun as it to example with foo, I would argue the opposite when you use some real world variable names:</div><div class=""><br class=""></div><div class="">if let someInterestingViewConroller = <span style="background-color:rgba(255,255,255,0)" class="">someInterestingViewConroller {</span></div><div class=""><span style="background-color:rgba(255,255,255,0)" class="">}</span></div><div class=""><br class=""></div><div class="">vs</div><div class=""><br class=""></div><div class="">If let&nbsp;<span style="background-color:rgba(255,255,255,0)" class="">someInterestingViewConroller {</span></div><div class="">}</div><div class=""><br class=""></div><div class="">We know what let does and it should be enough to impart the necessary information for this statement.</div><div class=""><br class=""></div><div class="">When it comes to newcomers I think you'd be hard pressed to find somebody who'd be able to understand either form without teaching; so not losing much there.<br class=""><br class=""></div></div><div dir="auto" class=""><div class=""><br class="">On Dec 19, 2015, at 10:01 AM, Chris Lattner via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><br class=""></div><blockquote type="cite" class=""><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Dec 11, 2015, at 8:19 AM, Jeff Kelley via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class=""><div class=""><div style="word-wrap:break-word" class="">I’ve had similar ideas to this. Instead of ditching the <font face="Menlo" class="">if let</font> syntax altogether, another approach would be to use the existing name if no new name is given, so that this code:<div class=""><br class=""></div><div class=""><font face="Menlo" class=""><span style="white-space:pre-wrap" class="">        </span>if let foo = foo { /* use foo */ }</font></div><div class=""><br class=""></div><div class="">could become this code:</div><div class=""><br class=""></div><div class=""><font face="Menlo" class=""><span style="white-space:pre-wrap" class="">        </span>if let foo { /* use foo */ }</font></div><div class=""><br class=""></div><div class="">In both cases, <font face="Menlo" class="">foo</font> is non-optional inside the braces. If you gave it another name with the <font face="Menlo" class="">if let</font> syntax, that would work as it does today.<br class=""></div></div></div></blockquote><br class=""></div><div class="">Hi Jeff,</div><div class=""><br class=""></div><div class="">This is commonly requested - the problem is that while it does help reduce boilerplate, it runs counter to the goal of improving clarity.</div><div class=""><br class=""></div><div class="">-Chris</div><br class="">
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=1Ry8ov4zuU66O51YNcjYWXuMGf2gObG8uPwoJz-2B4Z1VqMdeyeesw-2Bc9SDkZTEmLmnofSO3tNgiMGF47sxE879Ut5x-2F6sLSrTgmZhXJOq-2B59bEaSmJ0a44hp5limyi-2FpsrcKvySjRuPP0gLr6FoeZNJoisevK-2BimrVdnhvmWcLj69rx67MHqizgTcdJrprVSbV2f-2FkGqilX9aSsmL60yEZg-3D-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" class="">

</div></blockquote><blockquote type="cite" class=""><div class=""><span class="">_______________________________________________</span><br class=""><span class="">swift-evolution mailing list</span><br class=""><span class=""><a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a></span><br class=""><span class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br class=""></div></blockquote>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=1p9Jer2O6jVE9KWvo-2B9iUaEyN8slp4IizyiLwsfp54MtyOWrxaoHaMGzAhnPMF0sp5LxPZXk5eNlBjxy-2FAt5zkVbo2VD-2FQ4W-2BUOuGoaft-2FplxC7EKcDRU0CihWEShk8inzqrtA1U88maK5c2nA9GWIyomaiD9Fdm9Rv0pxi-2BRLreE13nSbY2-2BiUb-2BzelAVPA9sLs0wsXjhNwG2RMjUwV9g2oowx9vB6BgEzO0DKOI-2BM-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" class="">
</div>
_______________________________________________<br class="">
swift-evolution mailing list<br class="">
<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a><br class="">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="">
</blockquote></div>
</div></blockquote></div><br class=""></body></html>