Golang 1.13 adds number literal prefixes
Go language extensions should make it easier for programmers to move between Go and other C-family languages
12 July 2019 | 0
Go (golang) 1.13, the next version of Google’s open source language, is now in a beta stage. The update supports a more uniform and modernised set of number literal prefixes.
) 1.13, the next version of Google’s open source language, is now in a beta stage. The update supports a more uniform and modernised set of number literal prefixes.
Go adopted C’s number literal syntax from the beginning, but while most other C-numbered languages have added binary integer literals, alternate octal integer literals, hexadecimal floating point literals, and support for _ as a digit separator in number literals, Go has not kept up with these extensions — until now.
Language changes in
Go 1.13 include:
- For binary integer literals,
the prefix 0b or 0B indicates a binary integer literal such as Ob1011.
- For hexadecimal
floating point literals, the prefix 0x or 0X can express the mantissa of a floating point
number in hexadecimal format such as 0x1.op-1021. A hexadecimal floating point has to have an exponent, written as the
letter p or P followed by an exponent in decimal. The exponent scales the
mantissa by two to the power of the exponent.
- For octal integer
literals, the prefix 0o indicates an octal integer literal such as 0o660. The existing octal notation, which leads
with 0 followed by octal digits, is still valid.
- The imaginary
suffix, i, now may be used with any binary, decimal, or
hexadecimal integer or floating point literal.
- Digits of any number
literal now can be separated using underscores. An underscore ( _ ) may appear between any two digits or the
literal prefix and the first digit.
Language changes were implemented by changes to the compiler and corresponding changes to library packages. Go 1.13 also removes the restriction that a shift count has to be signed, eliminating the need for many artificial uint conversions. The compiler, meanwhile, has a more precise implementation of escape analysis. Also, TLS (Transport Layer Security) 1.3 is enabled in the crypto/tls package by default.
Go 1.13 beta can be downloaded from golang.org
IDG News Service