[fpc-pascal]Delphi "9" language features...
Thomas Schatzl
tom_at_work at gmx.at
Fri Aug 13 19:01:26 CEST 2004
Hello,
>> Exactly, which is why I prefer the idea Borland has gone for. The STL
>> is not
>> a good idea.
>>
>
> The behaviour of the d9 iterators appear to me very unspecific. In which
I think this is because the origin of this information is only a blog
entry, no specification...
> order does it iterate through the elements? What happens if I delete an
> element while iterating, maybe even the current. Does an iterator stay
> valid if I remove the element from the container?
See below.
>How can I change how the iterator behaves? etc.
Implement the interface methods for iterating over the class according
to one's wishes I suppose.
---
For Arrays: as indicated it's just a shorthand for a "for i := low(arr)
to high(arr) ...."
For IEnumerable: I guess they'll comply to the behaviour of the
IEnumerable interface of .NET, so have a look there:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcollectionsienumeratorclasstopic.asp
Outline:
- if the collection is changed while iterating over it, IEnumerable
throws an exception
- no inherent thread safety
- behaviour (e.g. iteration order) specific to implementation
I think this syntactic sugar construct is better than nothing: At least
I make a lot of mistakes regarding lost "-1" when specifying the upper
bound when writing code to iterate over a TStringList or similar - or
the imo stupid and repetitive "for i := low(xy) to high(xy) do begin"
sequences all over the place in case of normal arrays.
What's more interesting for me is that it seems that there will be a
Delphi compiler emitting native code again... :-)
Regards,
Thomas
One cent...
More information about the fpc-pascal
mailing list