is and as are implemented in the compiler to call the same method

Sent from my iPhone

> On Jun 14, 2017, at 1:38 PM, Xiaodi Wu <xiaodi...@gmail.com> wrote:
> 
> In SE-0170, it states: "It is worth noting that `is` should follow the same 
> logic as `as?`." For clarity, does rolling back to the initial Swift 3 
> behavior mean that `NSNumber(value: 0.1) is Float == true`?
> 
>> On Wed, Jun 14, 2017 at 3:13 PM, Philippe Hausler via swift-evolution 
>> <swift-evolution@swift.org> wrote:
>> After implementing the proposal 
>> https://github.com/apple/swift-evolution/blob/master/proposals/0170-nsnumber_bridge.md
>>  we have gotten some initial feedback.
>> 
>> It seems that there is definitely a fair amount of confusion and heartache 
>> for dealing with Float and Double values being bridged. 
>> 
>> Specifically the cases like:
>> 
>> NSNumber(value 0.1) as? Float
>> 
>> which with the current implementation will return nil since the Double value 
>> 0.1 cannot be represented exactly as a Float.
>> 
>> It seems like the overwhelming majority of users know full well that Float 
>> will result in a loss of precision (hence why they chose that type over 
>> Double). This means that the floating point bridges for Double, Float, and 
>> CGFloat should not be the pedantic “exactly” cases but instead infer the 
>> conversion intent of a lax/approximated version.
>> 
>> So in short: for the betterment of the API ergonomics, the floating point 
>> types as destinations will be pulled back to their initial Swift 3 behavior.
>> 
>> Additionally to aide appropriate migration to the appropriate 
>> truncating/exactly initializers the un-labeled, deprecated in Swift 4, plain 
>> init methods to the numeric types with an NSNumber will now be annotated 
>> with the suggested replacements.
>> 
>> Thanks for your time and feedback,
>> Philippe Hausler
>> 
>> _______________________________________________
>> 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