[swift-evolution] Followup after in-the-field feedback for SE-0170
Philippe Hausler
phausler at apple.com
Wed Jun 14 15:59:41 CDT 2017
> On Jun 14, 2017, at 1:47 PM, Dave Abrahams via swift-evolution <swift-evolution at swift.org> wrote:
>
>
> on Wed Jun 14 2017, Philippe Hausler <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>
>> After implementing the proposal
>> https://github.com/apple/swift-evolution/blob/master/proposals/0170-nsnumber_bridge.md <https://github.com/apple/swift-evolution/blob/master/proposals/0170-nsnumber_bridge.md>
>> <https://github.com/apple/swift-evolution/blob/master/proposals/0170-nsnumber_bridge.md <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.
>
> +1
>
>> 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.
>
> Sorry, I don't quite understand what that last paragraph implies. Could
> you describe what will be deprecated and what will be suggested instead?
https://github.com/phausler/swift/commit/62218c85b6c494c4054ec9774dd6ce095a5d0fa4 <https://github.com/phausler/swift/commit/62218c85b6c494c4054ec9774dd6ce095a5d0fa4>
So this is just an annotation of renaming to the init(truncating:)
>
> --
> -Dave
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170614/637d8d60/attachment.html>
More information about the swift-evolution
mailing list