<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><blockquote type="cite" class="clean_bq" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span><div><div>And what is with ‘a’ if this situation:<br><br>if b == x {<br>a = 5<br>}<br><br>Nothing :)</div></div></span></blockquote></div><p>Well, it’s not nothing, it has the same value that it had before.</p><p>However, as pointed by Leonardo Pessoa, there is a problem with expression:</p><p><font face="Menlo">let a = 5 if b == x</font></p><p>It is equivalent to:</p><p><font face="Menlo">if b == x {</font></p><p><font face="Menlo">&nbsp; &nbsp; let a = 5&nbsp;</font></p><p><font face="Menlo">}&nbsp;</font></p><p>but doesn’t communicate clearly that in the next line `a` is already out of scope and that you cannot write:</p><p><span style="font-family: Menlo;">let a = 5 if b == x</span></p><p><font face="Menlo">let c = a // a is not defined here</font></p><p>but you can write:</p><p><span style="font-family: Menlo;">let a = 1 if b == x&nbsp;</span></p><p><span style="font-family: Menlo;">let a = 2 if b == x //&nbsp;</span><span style="font-family: Menlo;">other a from other scope</span></p><p><span style="font-family: Menlo;">let a = 3 if b == x // another a from another scope</span></p><p>without error concerning immutability.</p><p>Austin Zheng has also rightly pointed that this “postfix” syntax looks as if the if-statement is now an expression, which will further confuse people coming from languages that use if-expressions.</p><p>Also, I find:</p><p><span style="font-family: Menlo;">{</span></p><p><font face="Menlo">&nbsp; &nbsp; //&nbsp;… a lot of code&nbsp;</font></p><p><span style="font-family: Menlo;">} if b == x</span></p><p>way less readable, simply because I read top to bottom. This syntax makes me search for the scope delimiter, understand the condition and only after lets me read the logic.</p><p><br></p><p>All the best,</p><p>Krzysztof</p><p><br></p><div><blockquote type="cite" class="clean_bq" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span><div><div>_______________________________________________<br>swift-evolution mailing list<br>swift-evolution@swift.org<br>https://lists.swift.org/mailman/listinfo/swift-evolution<br></div></div></span></blockquote></div></body></html>