I usually use guard (or sometimes if) and an early return:

func run() {
  guard !names.isEmpty else {
    /* stuff */
    return
  }
  
  /* stuff with names */
}

l8r
Sean



> On Feb 1, 2017, at 12:18 PM, Nicolas Fezans via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> I tend to write this kind of treatment the other way around...
> 
> if names.isEmpty {
>       // do whatever
> } // on other cases I might have a few else-if to treat other cases that need 
> special treament
> else {
>       for name in names {
>               // do your thing
>       }
> }
> 
> 
> Nicolas Fezans
> 
> 
> 
> On Wed, Feb 1, 2017 at 6:31 PM, Saagar Jha via swift-evolution 
> <swift-evolution@swift.org> wrote:
> If you’re fine with a couple extra characters, you can use .isEmpty:
> 
> for name in names {
>       // do your thing
> }
> if names.isEmpty {
>       // do whatever
> }
> 
> It’s a bit more typing, but I feel it makes your intentions more clear.
> 
> Saagar Jha
> 
>> On Feb 1, 2017, at 8:48 AM, Chris Davis via swift-evolution 
>> <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
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> 
> _______________________________________________
> swift-evolution mailing list
> 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

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

Reply via email to