collection ifEmpty:[ "...." ] ifNotEmptyDo: [:each | "...." ]
> On Feb 1, 2017, at 10:29, Chris Davis via swift-evolution > <swift-evolution@swift.org> wrote: > > ah! I forgot about the break semantics, that’s definitely one for the con > list. > > I like Nicolas’ solution, clear to read. > >> On 1 Feb 2017, at 18:18, Nicolas Fezans <nicolas.fez...@gmail.com >> <mailto:nicolas.fez...@gmail.com>> 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 <mailto: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 <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 >>> <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 >> <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