[swift-evolution] Add unless/if single line syntax

James Campbell james at supmenow.com
Sat Dec 12 11:17:52 CST 2015


So

guard username.text.characters.count > 0 else {
        return
    }

could be expressed as

unless(username.text.characters.count > 0) {
        return
    }

I think the second is much easier to read :)


On Sat, Dec 12, 2015 at 4:28 PM, Al Skipp via swift-evolution <
swift-evolution at swift.org> wrote:

> Top marks!
>
> unless(condition) { print("condition was false") }
>
> The feature implemented in the language. What’s not to like?
>
> On 12 Dec 2015, at 16:20, Tommy van der Vorst via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> Oops, that should be just:
>
> public func unless(expression: Bool, block: () -> ()) {
> if !expression {
> block()
> }
> }
>
> Op 12 dec. 2015, om 17:17 heeft Tommy van der Vorst via swift-evolution <
> swift-evolution at swift.org> het volgende geschreven:
>
> Or, use something like this:
>
> public func unless(expression: @autoclosure () -> Bool, block: () -> ()) {
> if !expression {
> block()
> }
> }
>
> unless(..expression..) {
> ...code...
> }
>
> /T
>
> Op 12 dec. 2015, om 17:08 heeft Al Skipp via swift-evolution <
> swift-evolution at swift.org> het volgende geschreven:
>
> If at all possible I think it’s best to avoid adding keywords to the
> language. Instead of ‘unless', you could do:
>
> public func not(bool: Bool) -> Bool { return !bool }
>
> if not(condition) { print("condition was false") }
>
> Not terrible ¯\_(ツ)_/¯
>
>
> On 12 Dec 2015, at 15:48, Matthew Johnson via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> I’m not sure about the single line aspect of this proposal, but I am a big
> proponent of “unless” and “until” as complements to “if” and “while”.  They
> greatly improve readability over "if !(expression)” and “while
> !(expression)” IMHO.
>
> On Dec 12, 2015, at 9:45 AM, Arthur Ariel Sabintsev via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> For your specific example, I'd 100% use the guard statement. It achieves
> the same result.
>
> -1 from me.
> On Sat, Dec 12, 2015 at 9:43 AM J. Cheyo Jimenez via swift-evolution <
> swift-evolution at swift.org> wrote:
>
>> -1 from me.  I think I would rather have an if-then expression that would
>> handle both False and True cases.
>>
>> https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151207/001944.html
>>
>> Also, in most cases I feel that guard would be a better choice.
>>
>>
>>
>> On Sat, Dec 12, 2015 at 5:39 AM, James Campbell via swift-evolution <
>> swift-evolution at swift.org> wrote:
>>
>>> I propose adding the unless and if statements from ruby.
>>>
>>> Return false if james = nil
>>>
>>> This returns false if the variable James is nil
>>> . This line does it unless james is nil:
>>>
>>> Return false unless james = nil
>>>
>>> This has been really handy when working in ruby, reduces lines and
>>> pyramids of doom
>>>
>>> Sent from my iPhone
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution at swift.org
>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>>
>>
>>  _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
>  _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
>  _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
>  _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>


-- 
 Wizard
james at supmenow.com
+44 7523 279 698
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151212/b286847c/attachment.html>


More information about the swift-evolution mailing list