T.init for static arrays?
bearophile
bearophileHUGS at lycos.com
Sat Mar 13 14:10:00 PST 2010
>Following Python Zen, I don't like to have two different syntaxes to do the same thing, [...]<
That was not clear enough, second try:
a[] = b[]; static dynamic
static OK1 OK1
dynamic OK1 OK1
a = b[]; static dynamic
static Err Err
dynamic Err Err
a[] = b; static dynamic
static Err Err
dynamic Err Err
a = b; static dynamic
static Err2 Err
dynamic Err OK2
int i; a=i; static dynamic
Err Err
int i;
a[] = i; static dynamic
OK3 OK3
Key:
Err = Syntax error
OK1 = Copies all items from an array to the oter.
OK2 = Copies just the stuct of the dynamic array, array body not copied.
OK3 = Copies the value to all the items of the array.
Err2 = Syntax error, becase there is no reference to copy, better keep language tidy.
You can see I have disallowed this too:
int a, b;
a = b;
This breaks generic code, but Andrei said that it's bad when the same syntax can be O(1) (because the same done on dynamic arrays is a O(1)) or O(n). And the semantics is too much different.
You are free to disagree. The good thing is that now I have those matrices of all cases, so it's easy to see and design :-)
The final version of those matrices can be added to this page:
http://www.digitalmars.com/d/2.0/arrays.html
Bye,
bearophile
More information about the Digitalmars-d
mailing list