March 04, 2005 Non char[] string inconsistencies. | ||||
---|---|---|---|---|
| ||||
This compiles ...
void main()
{
char[] A;
char[] B;
A = "abc";
B = "def" ~ A ~ "ghi";
}
But this does not ...
void main()
{
dchar[] A;
dchar[] B;
A = "abc";
B = "def" ~ A ~ "ghi";
}
Errors are ...
test2.d(7): incompatible types for (("def") ~ (A)): 'char[]' and 'dchar[]'
test2.d(7): Can only concatenate arrays, not (char[] ~ dchar[])
test2.d(7): incompatible types for (("def" ~ A) ~ ("ghi")): 'int' and
char[]'
test2.d(7): Can only concatenate arrays, not (int ~ char[])
test2.d(7): cannot implicitly convert expression "def" ~ A ~ "ghi" of type
int to dchar[]
??? Why is this so ??? I can only assume that bare string literals are presumed to be char[].
But this *does* compile ...
void main()
{
dchar[] A;
dchar[] B;
A = "abc";
B = "def";
B ~= A;
B ~= "ghi";
}
So bare string literals are not always char[].
--
Derek Parnell
Melbourne, Australia
5/03/2005 10:01:05 AM
|
Copyright © 1999-2021 by the D Language Foundation