I think this would make more sense if we were to get more characters in 
operators, such that we could also replace && with and, and || with or, this 
way we could make not an operator and write expressions like so:

        if foo and not bar { … }

Otherwise as others have said this seems strange as a method. If you don’t find 
the leading exclamation mark very readable then you could instead do:

        foo != true

It’s a few more characters, but it exists now and reads logically I think.

> On 21 May 2016, at 15:50, Антон Миронов via swift-evolution 
> <[email protected]> wrote:
> 
> I found negation operator (!) the least detectable among the code. So I’ve 
> decided to add property “not” to BooleanType (Swift 2.2) or Boolean on 3.0 
> with extension:
> 
> extension BooleanType {
>       var not: Bool { return !self.boolValue }
> }
> 
> This is code with negation operator:
>       return !self.lanes[position.y][currentLaneRange].contains(.Gap)
> 
> As I sad before negation operation is hard to spot. Moreover at first it 
> looks like I’m trying to negate self for some reason.
> 
> This is code with “not” property:
>       return self.lanes[position.y][currentLaneRange].contains(.Gap).not
> 
> Now it is easy to spot the statement I am actually getting negation of.
> On my experience negation operator can occasionally be missed while reading 
> code. This happens less often with “not” property. So I’m proposing to add 
> this property to standard library and prefer it in most cases.
> 
> Thanks,
> Anton Mironov
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to