<div dir="ltr">I like compact code but not at the cost of code readability and clarity. I think this degrades the later more then helps the former.<div><br></div><div>-Shawn<br><br><div class="gmail_quote"><div dir="ltr">On Tue, Feb 23, 2016 at 11:13 PM Darko Damjanovic via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In the current Swift version the compiler is warning me if a variable is never written to and therefore should be a &quot;let&quot; constant. So now the compiler knows best if &quot;let&quot; or &quot;var&quot; should be applied. During writing code I experience repetitive hints about using &quot;let&quot; or &quot;var&quot; so why do I have to declare it all the time by myself if the compiler anyway knows best?<br>
<br>
My proposal would be to make the declaration of &quot;let&quot; and &quot;var&quot; optional.<br>
<br>
Example:<br>
x = 0 // &lt;- implicitly declared as &quot;var x&quot; because later was written to, no need to declare it manually<br>
x = 5<br>
<br>
Example:<br>
y = 0 // &lt;- implicitly declared as &quot;let y&quot; because later was not written to<br>
print(y)<br>
<br>
Example Optional Binding:<br>
if index = myArray.indexOf(&quot;A&quot;) {<br>
        print(index) // here it&#39;s clear that index can be &quot;let index&quot;<br>
}<br>
<br>
etc...<br>
<br>
This would _not_ mean to disallow or remove the &quot;var and &quot;let&quot; mutability declarations - just to make them optional. If I still want to write it to make it clear just by reading thru the code then this is ok. But I can omit &quot;var and &quot;let&quot; if I want -  why bother about it at all if I can go sure that the compiler is already doing the best?<br>
<br>
Another option (if this is &quot;too much&quot; change) would be to just make &quot;let&quot; optional and &quot;var&quot; still should be explicitly written. So &quot;let&quot; would be the default and if I want mutability I have explicitly declare it as &quot;var&quot;. This is already the rule for function parameters.<br>
<br>
Kind regards,<br>
Darko Damjanovic-Lichtfuss<br>
</blockquote></div></div></div>