[swift-evolution] [Proposal] Add property for negation to Bool

T.J. Usiyan griotspeak at gmail.com
Sun May 22 02:30:28 CDT 2016


`var isFalse: Bool` seems like a nice resolution to me. no need for new
keywords and it reads better than !foo

On Sun, May 22, 2016 at 3:28 AM, Haravikk via swift-evolution <
swift-evolution at swift.org> wrote:

> 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 <
> swift-evolution at swift.org> 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
> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160522/7fcddc90/attachment.html>


More information about the swift-evolution mailing list