for-else syntax

I ran into this not too long ago. Something to handle this case would definitely be nice, but I agree we shouldn’t take python’s syntax with different semantics.

···

On Feb 1, 2017, at 9:30 AM, Dimitri Racordon via swift-evolution <swift-evolution@swift.org> wrote:

I agree. A for-else loop with different semantics than python would be error-prone for many people.

On 1 Feb 2017, at 18:17, Jacob Bandes-Storch via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:

One possible con: this is subtly but extremely different from Python, where a for loop's else clause is executed only if there was no `break` from the loop.
On Wed, Feb 1, 2017 at 8:48 AM Chris Davis via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
Hi,

Often when I’m programming I stumble upon this scenario:

I have a list of items that may or may not be empty - if it’s full, I do one thing, if it’s empty I do something else, my code looks like this:

class Example_1
{
    let names = ["Chris", "John", "Jordan"]
    
    /// Loop over names, if no names, print no names
    func run()
    {
        for name in names
        {
            print(name)
        }
        
        if names.count == 0
        {
            print("no names")
        }
    }
}

let exampleOne = Example_1()
exampleOne.run()

However, Personally, I would find it more pleasing to write something like this:

class Example_2_Proposed
{
    let names:[String] =
    
    /// Loop over names, if no names, print no names
    func run()
    {
        for name in names
        {
            print(name)
        } else {
            print("no names")
        }
    }
}

let exampleTwo = Example_2_Proposed()
exampleTwo.run()

The difference here is a “for-else” type syntax where if there were no items in the array it would simply fall through to the else statement.

What would be the pros/cons of introducing such syntax?

Is there’s a way of doing something similar in swift already?

Thanks

Chris

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org <mailto:swift-evolution@swift.org>
https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org <mailto:swift-evolution@swift.org>
https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution