On Wednesday, 4 July 2012 at 00:34:39 UTC, Jonathan M Davis wrote:
On Wednesday, July 04, 2012 02:20:26 ixid wrote:
0.writeln();
This works.
01.writeln();
This doesn't.
etc...
Throw up a series of errors while any other number as the
leading
digit seems to work fine. Why is this?
It's probably an artifact of getting rid of octal literals and
is clearly a
bug - though you probably shouldn't be starting literals with 0
due to
possible confusion with octal literals anyway (00 - 07 are
permitted because
they're the same in both octal and decimal, but any other
number literal
starting with 0 is illegal).
The error you get for something like
auto n = 08;
is a bit off too
q.d(5): Error: semicolon expected following auto declaration,
not '8'
- Jonathan M Davis
The one exception I found to starting literals with 0 is when
using dates - using the DateTime module (excellent write-up,
btw!) and having to pass dates like 07/04/09 as 7, 4, 9 without
the leading 0 is kind of awkward, for me at least. Minor gripe.