[swift-users] Hexadecimal floating-point literals

zh ao owenzx at gmail.com
Sun Jun 26 04:49:48 CDT 2016


I think it avoids the confusion. You can use print((0xabc).beef) instead.

Zhaoxin

On Sun, Jun 26, 2016 at 3:50 PM, Toni Suter via swift-users <
swift-users at swift.org> wrote:

> Hi,
>
> I have a question regarding hexadecimal floating-point literals. According
> to the Lexical Structure (
> https://developer.apple.com/library/prerelease/content/documentation/Swift/Conceptual/Swift_Programming_Language/LexicalStructure.html
> )
> it is not possible to have a hex floating-point literal without the
> exponent. At first I thought this makes sense.
> How else would the lexer / parser know if 0x123.beef is a hex
> floating-point literal or a hex integer literal with a property 'beef'?
> However, if I define such a property on Int, it doesn’t work:
>
> extension Int {
>     var beef: Int {
>         return 42
>     }
> }
>
> print(12.beef) // works
> print(0b1001.beef) // works
> print(0o77.beef) // works
> print(0xabc.beef) // error: hexadecimal floating point literal must end
> with an exponent
>
> Is this just to avoid confusion for the programmer? Or is there some other
> reason?
>
> Thanks and best regards,
> Toni
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20160626/9e6f29a9/attachment.html>


More information about the swift-users mailing list