Some time ago there was a discussion about the data type given back by the "length" function. Several reasons were given for the type beeing a *signed* integer.
But what about High() and Low()? Shouldn't they give back signed integers too for the same reasons? Especially, when I have a dynamic array like -------------------------------- var MyArray : array of ... ... for i := Low(MyArray) to High(MyArray) do MyArray[i] := ... -------------------------------- I now have to prepend this with a -------------------------------- if Length(MyArray)<>0 then.. -------------------------------- because otherwise I would get an error in case the length is 0 because Low() and High() both give back 0. The result of both functions is the same as if the array had exact one element. I find this quite illogical and would prefer if High() gives back a value less than Low() in this case so that the above for-loop would not be entered at all without the need to prepend it with an if-condition. For example, setting High() to -1 while Low() to 0 for empty dynamic arrays would avoid this special case. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal