[swift-evolution] [proposal] extra if syntax
Krzysztof Siejkowski
krzysztof at siejkowski.net
Thu May 12 05:16:39 CDT 2016
And what is with ‘a’ if this situation:
if b == x {
a = 5
}
Nothing :)
Well, it’s not nothing, it has the same value that it had before.
However, as pointed by Leonardo Pessoa, there is a problem with expression:
let a = 5 if b == x
It is equivalent to:
if b == x {
let a = 5
}
but doesn’t communicate clearly that in the next line `a` is already out of scope and that you cannot write:
let a = 5 if b == x
let c = a // a is not defined here
but you can write:
let a = 1 if b == x
let a = 2 if b == x // other a from other scope
let a = 3 if b == x // another a from another scope
without error concerning immutability.
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.
Also, I find:
{
// … a lot of code
} if b == x
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.
All the best,
Krzysztof
_______________________________________________
swift-evolution mailing list
swift-evolution at swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160512/852bd41d/attachment.html>
More information about the swift-evolution
mailing list