Page 1 of 1

use also 0 as index in arrays?

Posted: Tue Nov 14, 2006 4:59 am
by innominabile
about use also 0 as index in arrays?

Posted: Tue Nov 14, 2006 5:53 am
by Marilla
Actually, I'd prefer to ONLY use 0-based indexes in arrays, despite the changes in code it would require. It's just more consistent, IMO, with other languages.

However, I actually think it may be a bad idea to offer both 0-and 1-based arrays, just due to the confusion that could ensue. As much as I might prefer to have 0-based arrays in eScript, at least I always know that arrays in eScript are 1-based now, and no one has to worry about bugs related to assuming the incorrect base.

Posted: Tue Nov 14, 2006 9:30 am
by innominabile
I think that if you "Add" a new member it should start from 1.
Also in { member1, member2, ecc... should start from 1

But only allow array[0] fo force element index ad zero?

Posted: Tue Nov 14, 2006 1:07 pm
by Austin
You think a lot of things.. should be changed in POL.
Some good, most bad.
This is a bad one.
You're like a.. suggestaholic.

It doesn't do anything beneficial, it would just be work changing something
because... thats how it is in some other language you also like to use?
Really, what is a good reason to do something like this?

Time is better spent fixing the last few bugs in 097 and implementing suggestions that benefit everyone.

Posted: Tue Nov 14, 2006 2:09 pm
by Lagoon
This time I have to agree with Austin
Do you ever consider the consequences of such changes?
Most pol scripters would have to update thousands of scripts (yes, thousands, not even hundreds) to take into consideration arrays starting with 0 index and this... to have which benefit? This is a proposal who could have a meaning only when gathering ideas for a new emu. It's a nonsense for an emu with so many years of life

Posted: Tue Nov 14, 2006 7:09 pm
by Marilla
Yup... it would be bad, bad to change it, and there wouldn't be any measurable benefit at all. However, I don't think he was asking to change the base from 1 to 0, but to offer 0 as an option, in addition to 1.

But, I think that's an even worse idea!

:razz:


Oh, and Austin... suggestions are cheaper than beer :lol:

Posted: Sat Nov 18, 2006 11:49 am
by SMJ
I always wondered what 0 did... I always figured that if it was given a value, it would be given the length of the array or something. But using 0 as the start of an array would screw up how gump returns work in their entirety, who currently use 0 as the value returned.

Posted: Sat Nov 18, 2006 12:02 pm
by Marilla
The results of trying to read array[0] are:

Code: Select all

error {"errortext" := "Array index out of bounds"}
Trying to set it likely returns the same error to the debug log, if enabled. The read error is the same as it would be upon entering any invalid number for the array index. Attempting to write to an as-yet non-existent index on an eScript array just happens to have the special behavior of causing the array to expand, so there isn't really a comparable error for writing to positive index values. Not sure what eScript would do if you used a double type to pass a number larger than the likely 4-byte int limit of array indexes, but that's just going off the deep end :D


As for gumps, I actually think that it would be been terribly helpful had eScript started out with 0-based indexes for that, as a practical reason. As it is now, when inserting values into gump arrays, you have to adjust the eScript index into the array by one from the value you set in the gump layout information. That's been my main gripe with eScript arrays. BUT...... I just happen to think that changing it now would cause even more confusion and trouble.

Re: use also 0 as index in arrays?

Posted: Sun Nov 19, 2006 12:31 pm
by Shinigami
innominabile wrote:about use also 0 as index in arrays?
no

Shinigami

Re: use also 0 as index in arrays?

Posted: Sun Nov 19, 2006 10:04 pm
by MuadDib
Shinigami wrote: no

Shinigami
Agreed