> On 28 Aug 2016, at 14:04, Tino Heth <[email protected]> wrote:
> 
> 
>> Am 28.08.2016 um 05:34 schrieb Kevin Ballard via swift-evolution 
>> <[email protected] <mailto:[email protected]>>:
>> 
>>> My biggest issue with Optional conforming to Comparable is that while a 
>>> default implementation may sometimes be useful, it may not necessarily be 
>>> the one you want.
>> 
>> Isn't that true for almost everything?
> 
> That reminds me on a feature that has been discussed and added before:
> Making tuples conform to Comparable 
> (https://github.com/apple/swift-evolution/blob/master/proposals/0015-tuple-comparison-operators.md
>  
> <https://github.com/apple/swift-evolution/blob/master/proposals/0015-tuple-comparison-operators.md>)
> The implementation doesn't hurt me, but imho it's use is very limited as well.
> 
> As for comparing optionals, my preferred result would be an Optional<Bool>:
> if (value < 5) ?? true {…
> It makes no assumptions on the order, is clear and also concise.
> 
> Tino

This could be an interesting compromise, but I'd say it shouldn't use the same 
operator as it's meaning differs from the norm, but in that case you'd be 
looking at introducing <?, >? etc. which is a lot of new operators for the task 
(which the Swift team I think wants to avoid).

As others have said, the proposal for a strict ordering operator ought to solve 
most of these issues, so it should probably be made a priority, as with it we 
can have strictly ordered, optional types, where the meaning of < (inferred 
from the strict ordering operator) is well defined, which ought to cover most 
types that will implement it.

Otherwise I'd say your options are either to use nil coalescing (??) or 
re-implement the optional forms of the operators yourself where necessary (and 
deal with later once strict ordering is added). I think for most cases right 
now this should be sufficient; disruptive admittedly, but the best option for 
now IMO.
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to