Well I only used the previously mentioned names, in my codebase I use `isFalse` 
for that situation which is better then `== false` in my opinion.


Am 13. Januar 2018 um 20:06:21, Karl Wagner (razie...@gmail.com) schrieb:



> On 12. Jan 2018, at 20:54, Alejandro Martinez via swift-evolution 
> <swift-evolution@swift.org> wrote:  
>  
> I wouldn't go as far as to ask to fade out ! but in all my code I end  
> up doing == false just for readability. That ! knows who to hide  
> himself too well :P  
>  

Yeah so do I. ! is a very narrow character and totally changes the meaning of 
the logic.  

That said, I can’t come up with a clearer name than “== false”. inverted() 
isn’t helpful. toggle() on a mutable Bool is good, though.  

- Karl  

> On Fri, Jan 12, 2018 at 10:13 AM, Adrian Zubarev via swift-evolution  
> <swift-evolution@swift.org> wrote:  
>> I’m not sure if this would be considered or not, but I would like if the  
>> negation operator `!` would fade out.  
>>  
>> If this is ever going to a review then I’d suggest that we add a pair of  
>> functions, one mutating and the other non-mutating.  
>>  
>> extension Bool {  
>> mutating func invert() {  
>> self = !self  
>> }  
>>  
>> func inverted() {  
>> return !self  
>> }  
>> }  
>>  
>> I’d rather use `inverted` instead of `!` because of the readability this  
>> function provides.  
>>  
>> if !items.contains(item) { ... }  
>>  
>> if items.contains(item).inverted() { ... }  
>>  
>> ——  
>>  
>> I personally have some other extensions like:  
>>  
>> extension Bool {  
>> @discardableResult  
>> func whenTrue<T>(execute closure: () throws -> T) rethrows -> T? {  
>> if self { return try closure() }  
>> return nil  
>> }  
>>  
>> @discardableResult  
>> func whenFalse<T>(execute closure: () throws -> T) rethrows -> T? {  
>> if !self { return try closure() }  
>> return nil  
>> }  
>> }  
>>  
>> But this is more a personal preference.  
>>  
>> ——  
>>  
>> That said, if the community is fine with the `invert/inverted` pair then I’d 
>>  
>> say go for it ;)  
>>  
>> Am 12. Januar 2018 um 09:14:22, Nate Cook via swift-evolution  
>> (swift-evolution@swift.org) schrieb:  
>>  
>>  
>> On Jan 12, 2018, at 12:15 AM, Chris Eidhof via swift-evolution  
>> <swift-evolution@swift.org> wrote:  
>>  
>> Hey SE!  
>>  
>> When we have a bunch of nested structs:  
>>  
>> struct Sample {  
>> var bar: Bar  
>> }  
>>  
>> struct Bar {  
>> var show: Bool  
>> }  
>>  
>> var foo = Sample(bar: Bar(show: false))  
>>  
>> It can be repetitive to toggle a deeply nested boolean:  
>>  
>> foo.bar.show = !foo.bar.show // duplication  
>>  
>> I sometimes add a `toggle` extension on `Bool`  
>>  
>> extension Bool {  
>> mutating func toggle() {  
>> self = !self  
>> }  
>> }  
>>  
>> This allows you to write the same code without duplication, and makes the  
>> intent clearer:  
>>  
>> foo.bar.show.toggle()  
>>  
>>  
>> I like it!  
>>  
>> In other languages, I don't think the `toggle` would make as much sense, but 
>>  
>> the mutable self makes this very useful.  
>>  
>> After I posted it on Twitter, it turns out I'm not the only one:  
>> https://twitter.com/PublicExtension/status/730434956376346624  
>>  
>> I would have gone straight to a proposal, but I think we can do some  
>> bikeshedding about the name of `toggle`?  
>>  
>>  
>> Another verb that could work is `invert`.  
>>  
>> The `!` operator that does this is the negation operator, but I think  
>> `negate` could sound to some like "make this false" rather than toggling.  
>>  
>> Nate  
>> _______________________________________________  
>> 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  
>>  
>  
>  
>  
> --  
> Alejandro Martinez  
> http://alejandromp.com  
> _______________________________________________  
> 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