Top level associative arrays

Jacob Carlborg via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue May 2 05:41:01 PDT 2017


On 2017-05-02 09:48, ANtlord wrote:
> Hello! Is it possible to define associative array on top level of module?
> I try to compile this code and I get message `Error: non-constant
> expression ["s":"q", "ss":"qq"]`
>
> import std.stdio;
>
> auto dict = [
>      "s": "q",
>      "ss": "qq"
> ];
> void main()
> {
>      writeln(val);
> }
>
> I solved it by replacement of word `auto` by `enum`. It is acceptable
> for me. But I notice some inconsistency of logic. When I define simple
> array I don't get same compile error and it doesn't lead to define this
> array using enum. What is key difference between them in this case?
>
> Thanks. Sorry if my English is not clear.

Note that when declared as "enum", all places it's referenced, a new 
associative array will be allocated.

-- 
/Jacob Carlborg


More information about the Digitalmars-d-learn mailing list