void main() {
    float[3] v1 = [1.0, 2.0, 3.0];    // No error
float[3] v = [1.0, 2.0, 3.0].dup; // Fails at runtime with error message
}


Why does the array assignment work when "dup" is not used. My understanding is that arrays, like classes, are references.

So I declare v1 as a float[3] point it at a double[3] literal. Is v1 now a double[3] or a float[3]? Is there an implicit cast from double[3] to float[3]?

The dup, gives a compile time error and if cast to float[] it gives a runtime error. This is all good, I just don't quite understand how the ref assignment is working...


Thanks,
Stewart

Reply via email to