[Gambas-user] Feature request: Use key- (and index-)accessor in a With clause

Tobias Boege taboege at ...626...
Thu Aug 15 16:32:17 CEST 2013


On Thu, 15 Aug 2013, Beno?t Minisini wrote:
> Le 13/08/2013 01:31, Beno?t Minisini a ?crit :
> > Le 11/08/2013 13:33, Tobias Boege a ?crit :
> >> Hi Benoit,
> >>
> >> what bothers me from time to time is that With is *so* handy but can't be
> >> used to access Array or Collection elements like:
> >>
> >> With hCollection ' or hArray
> >>    Print ["key"]  ' or Print [0]
> >> End With
> >>
> >> I see that this would be a syntactical problem because ["key"] and [0]
> >> may
> >> equivalently well be recognised as inline arrays. But we have another
> >> option, right? There is still the ! operator which is unambiguous:
> >>
> >> With hCollection
> >>    Print !key
> >> End With
> >>
> >> Should be no problem if implemented. What do you think? And while we
> >> are at
> >> it, couldn't the ! operator at the same time get the capability to
> >> support
> >> integers, so that the above will also work with an array:
> >>
> >> With hArray
> >>    Print !0
> >> End With
> >>
> >> Regards,
> >> Tobi
> >>
> >
> > The '!' can't be used, because a!b is just syntactic sugar for a["b"].
> >
> > Maybe a syntax like .[x] = y could be used, as at the moment .[x] is a
> > syntax error... I will think about it.
> >
> 
> This is implemented in revision #5797:
> 
> Dim aStr As New String[2]
> With aStr
>    .[0] = "a"
>    .[1] = "b"
>    Print .[0];; .[1]
> End With
> 
> Enjoy!

Nice! Works also with Collection-like objects. The only thing I noticed was
that it's not very comfortable to type in the IDE, i.e. once you are in the
With clause and type ".", you will presented the list of symbols in the
auto-completion popup. If you press "[", the first thing in there is
inserted before the "[".

Anyway, this is very great!

Thanks,
Tobi




More information about the User mailing list