digitalmars.D.learn - Initializing associative arrays
- Tydr Schnubbis <fake address.dude> May 01 2006
- "Jarrett Billingsley" <kb3ctd2 yahoo.com> May 01 2006
- Stewart Gordon <smjg_1998 yahoo.com> 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"]];
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









"Jarrett Billingsley" <kb3ctd2 yahoo.com> 