digitalmars.D.learn - Initializing associative arrays
- Tydr Schnubbis (14/14) May 01 2006 If I've got this array:
- Jarrett Billingsley (4/6) May 01 2006 They simply don't exist in D. Nor do array initializers for any kind of...
-
Stewart Gordon
(19/27)
May 02 2006
If I've got this array: char[][][char[]] arr; and want to initialize it, what do I do? I couldn't make the initializer syntax work, I tried this: arr = [["key1"]: ["one", "two"]]; Then I resorted to this: static this() { arr["key1"] = split("one two"); } And that works, but doesn't strike me as particularly obvious or practical. It's a lot like the string list initializer trick I often use in python code. Have I overlooked something here? Or maybe static initializers just aren't the right way to go for hashes?
May 01 2006
"Tydr Schnubbis" <fake address.dude> wrote in message news:e35k35$50a$1 digitaldaemon.com...Have I overlooked something here? Or maybe static initializers just aren't the right way to go for hashes?They simply don't exist in D. Nor do array initializers for any kind of non-static arrays. Except character arrays. They get special treatment.
May 01 2006
Tydr Schnubbis wrote:If I've got this array: char[][][char[]] arr; and want to initialize it, what do I do? I couldn't make the initializer syntax work, I tried this: arr = [["key1"]: ["one", "two"]];<snip> Problem 1: That isn't an initialiser. An initialiser is what follows the '=' in a _declaration_. Problem 2: You've declared the key type as char[]. But you're trying to use a char[][] as the key. Problem 3: D doesn't currently support initialisers for AAs. Don't ask me why - I guess Walter just hasn't got round to putting it in. But implementing the facility would at least enable this to work: char[][][char[]] arr = ["key1": ["one", "two"]]; Stewart. -- -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/M d- s:- C++ a->--- UB P+ L E W++ N+++ o K- w++ O? M V? PS- PE- Y? PGP- t- 5? X? R b DI? D G e++++ h-- r-- !y ------END GEEK CODE BLOCK------ My e-mail is valid but not my primary mailbox. Please keep replies on the 'group where everyone may benefit.
May 02 2006