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
 
<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
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to