[swift-evolution] Alternative For Nested If Repetiion
Kurt Werle
kurt at circlew.org
Mon Mar 14 12:52:55 CDT 2016
Oooh - didn't know about that - very nice.
Thanks,
Kurt
On Mon, Mar 14, 2016 at 10:31 AM, Joe Groff <jgroff at apple.com> wrote:
>
> On Mar 12, 2016, at 3:20 PM, Kurt Werle via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> let x = 1
> let y = 2
> let z = 3
>
> let condition1 = x > y
> let condition2 = z > x
>
> switch (condition1, condition2) { // Treat your conditions as peers
> case (true, _): // true & whatever
> break
> case (false, true): // false, true
> break
> case (false, false): // false, false
> break
> // no default needed - we covered all the cases
> }
>
>
> You can also use tuple labels here to aid readability:
>
> switch (x_y: x > y, z_x: z > x) {
> case (x_y: true, z_x: _):
> ...
> }
>
> -Joe
>
>
> On Sat, Mar 12, 2016 at 1:17 PM, Ted F.A. van Gaalen via swift-evolution <
> swift-evolution at swift.org> wrote:
>
>> a block of nested 'if else’ is not really nice, i think:
>>
>> • if condition 1 {
>> • statements to execute if condition 1 is true
>> • } else if condition 2 {
>> • statements to execute if condition 2 is true
>> • } else {
>> • statements to execute if both conditions are false
>> • }
>>
>> what I currently do to prevent this:
>>
>> switch true
>> {
>> case film == 2010:
>> itsFullOfStars(monolith)
>>
>> case terriblyWrongPresident():
>> initiateNewElections()
>>
>> case b > c:
>> c = b
>>
>> case d > c:
>> c = d
>>
>> default:
>> break // or something else to do, if all other conditions are
>> fase
>> }
>>
>>
>> This works perfectly well, looks good too, I think, but is it right thing
>> to do it this way,
>> as in principle 'switch’ is perhaps more intended to evaluate variables?
>>
>> Python has its “elif” keyword…
>>
>> So what about, an ‘ifs’ statement group in Swift:
>>
>>
>> ifcases // or another keyword, perhaps
>> {
>> case a > b:
>> b = a
>> case c < d:
>> b = c
>> }
>> without fall-through option.
>> perhaps also without default
>>
>>
>> What do you think?
>>
>> TedvG
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
>
>
>
> --
> kurt at CircleW.org <kurt at circlew.org>
> http://www.CircleW.org/kurt/ <http://www.circlew.org/kurt/>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
>
--
kurt at CircleW.org
http://www.CircleW.org/kurt/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160314/221256a7/attachment.html>
More information about the swift-evolution
mailing list