Thread overview | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
March 12, 2016 Clearing associative array. | ||||
---|---|---|---|---|
| ||||
Could someone explain to me, why following code does not compile? int main() { string[string] x = [ "foo" : "bar" ]; x.clear(); x = []; return 0; } Errors: main.d(7): Error: no property 'clear' for type 'string[string]' main.d(8): Error: cannot implicitly convert expression ([]) of type void[] to string[string] Failed: ["dmd", "-v", "-o-", "main.d", "-I."] If above doesn't work how am I supposed to clear the array? `x = string[string].init;` is somewhat ugly. dmd --version DMD64 D Compiler v2.070.0 Copyright (c) 1999-2015 by Digital Mars written by Walter Bright |
March 12, 2016 Re: Clearing associative array. | ||||
---|---|---|---|---|
| ||||
Posted in reply to ciechowoj | On Saturday, 12 March 2016 at 12:34:16 UTC, ciechowoj wrote: > If above doesn't work how am I supposed to clear the array? `x = string[string].init;` is somewhat ugly. Read the Tip of the Week section here: http://arsdnet.net/this-week-in-d/dec-13.html Short answer: use `= null` to clear the AA. [] doesn't work just because the compiler is a bit stupid about the type you intend it to be, but null works fine. BTW you might want to glance through more of the issues for the tip section too and see if there's more that interest you. |
March 12, 2016 Re: Clearing associative array. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | On Saturday, 12 March 2016 at 12:42:04 UTC, Adam D. Ruppe wrote: > On Saturday, 12 March 2016 at 12:34:16 UTC, ciechowoj wrote: >> If above doesn't work how am I supposed to clear the array? `x = string[string].init;` is somewhat ugly. > > Read the Tip of the Week section here: > > http://arsdnet.net/this-week-in-d/dec-13.html > > Short answer: use `= null` to clear the AA. [] doesn't work just because the compiler is a bit stupid about the type you intend it to be, but null works fine. > > BTW you might want to glance through more of the issues for the tip section too and see if there's more that interest you. Nice article :), thanks. But still, what about clear()? In the documentation https://dlang.org/spec/hash-map.html#properties there is written that associative arrays have clear property. |
March 12, 2016 Re: Clearing associative array. | ||||
---|---|---|---|---|
| ||||
Posted in reply to ciechowoj | On Saturday, 12 March 2016 at 12:59:02 UTC, ciechowoj wrote:
> Nice article :), thanks. But still, what about clear()? In the documentation https://dlang.org/spec/hash-map.html#properties there is written that associative arrays have clear property.
I don't think that actually works... might be out of date documentation, I'm not sure.
|
March 13, 2016 Re: Clearing associative array. | ||||
---|---|---|---|---|
| ||||
Posted in reply to ciechowoj | On Saturday, 12 March 2016 at 12:59:02 UTC, ciechowoj wrote:
> On Saturday, 12 March 2016 at 12:42:04 UTC, Adam D. Ruppe wrote:
>> On Saturday, 12 March 2016 at 12:34:16 UTC, ciechowoj wrote:
>>> If above doesn't work how am I supposed to clear the array? `x = string[string].init;` is somewhat ugly.
>>
>> Read the Tip of the Week section here:
>>
>> http://arsdnet.net/this-week-in-d/dec-13.html
>>
>> Short answer: use `= null` to clear the AA. [] doesn't work just because the compiler is a bit stupid about the type you intend it to be, but null works fine.
>>
>> BTW you might want to glance through more of the issues for the tip section too and see if there's more that interest you.
>
> Nice article :), thanks. But still, what about clear()? In the documentation https://dlang.org/spec/hash-map.html#properties there is written that associative arrays have clear property.
The problem was brought up a few days ago (can't remember where) and it happens to be a documentation mistake: there is a clear() method planned but for a future release (the next one?).
|
March 13, 2016 Re: Clearing associative array. | ||||
---|---|---|---|---|
| ||||
Posted in reply to cym13 | On Sunday, 13 March 2016 at 13:42:02 UTC, cym13 wrote:
> The problem was brought up a few days ago (can't remember where) and it happens to be a documentation mistake: there is a clear() method planned but for a future release (the next one?).
That would be great : )
|
March 15, 2016 Re: Clearing associative array. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | On 3/12/16 8:09 AM, Adam D. Ruppe wrote: > On Saturday, 12 March 2016 at 12:59:02 UTC, ciechowoj wrote: >> Nice article :), thanks. But still, what about clear()? In the >> documentation https://dlang.org/spec/hash-map.html#properties there is >> written that associative arrays have clear property. > > I don't think that actually works... might be out of date documentation, > I'm not sure. Opposite. The next version of dmd will have a clear property. Apparently, we don't have a good system to merge doc changes in concert with future master releases. Whatever gets pulled apparently gets built as the current docs. See PR: https://github.com/D-Programming-Language/dlang.org/pull/1217 -Steve |
Copyright © 1999-2021 by the D Language Foundation