[fpc-pascal] Weird string behavior
Michael Schnell
mschnell at lumino.de
Wed Jul 27 16:10:10 CEST 2016
On 07/26/2016 04:19 PM, Michael Van Canneyt wrote:
>
> This is not correct. In pascal the right-hand side of an assignment
> has a well-defined type. The compiler checks whether the type on the
> right is assignment-compatible to the left side.
Hmm.
if you do
x := y + z;
with x a real and y and z integers, the type of x will not change to be
an integer, but the value will be converted.
Now I understand that with strings the encoding is a kind of "sub-type"
and hence (usually) static and not convertible to allow for the compiler
do decide if a conversion is necessary.
This has been discussed a long time ago and the argument was that
_fully_ dynamically typed strings are to costly regarding CPU demand.
I did not get to know that those design decision has been changed for
the normal usage case (while there seems to be ways to sue certain kinds
of strings in a fully dynamical way) .
Changing the encoding of the left side operand of ":=" would only be
logical if the encoding is never an attribute to the string's type but
always a dynamical attribute to the string's content.
-Michael.
More information about the fpc-pascal
mailing list