digitalmars.D.learn - LOL - int array literals (and an idea)
- Jarrett Billingsley (25/25) Jun 15 2005 Look at this healthy mess:
- Chris Sauls (4/11) Jun 15 2005 Cute... throw in hex strings and it gets even cuter. :)
Look at this healthy mess: void main() { int[] arr=(cast(int*)cast(void*)(cast(dchar[])"\u0001\u0002\u0003").ptr)[0..3]; for(uint i=0; i<arr.length; i++) writefln(arr[i]); } It prints 1 2 3 It works! Just something interesting I thought up in the limbo of half-sleep this morning. But it does point out something interesting - how is it that (d|w)char arrays can have non-static literal initializers, but not anything else? I propose an "array" keyword, that works something like the "function" or "delegate" keywords: int[] arr=int array[1,2,5,6,9]; Typechecking could be done on the contents of the literal because of the "int", it could be used as an argument to a function, and the array keyword makes it unambiguous. And then we can use the array keyword in "is" expressions! if( is( arr == array ) ) :)
Jun 15 2005
Jarrett Billingsley wrote:void main() { int[] arr=(cast(int*)cast(void*)(cast(dchar[])"\u0001\u0002\u0003").ptr)[0..3]; for(uint i=0; i<arr.length; i++) writefln(arr[i]); }Cute... throw in hex strings and it gets even cuter. :) -- Chris Sauls
Jun 15 2005