• ベストアンサー

D言語の連想配列の配列

D言語で連想配列の配列を使いたいのですが、 以下のソースをコンパイルするとコンパイルエラーが起きます。なにがいけないのでしょうか。 int main(char[][] args) { int[3][char[]] x; x[0]["abc"]=1; return 0; } エラーメッセージ test.d(4): cannot implicitly convert expression 0 of type int to char[] test.d(4): cannot implicitly convert expression "abc"i of type char[3] to int

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

int[3][char []] x; と宣言しているのだから, 使うときには x["abc"][0] = 1; のようになるのでは?

nagata20000
質問者

お礼

回答ありがとうございます。 逆になるんですね。 ところでkeyの配列を得たいのですがx[0].keysとやると怒られてしまいます。どうしたらいいですか。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>keyの配列を得たいのですが char [][] keys; keys=x.keys; foreach(char[]k;keys){ printf("%.*s\n",k); } でいいみたいです。 はっきりいって、何でこれでいいのか私も良くわかりません。(;^_^A 勉強になります

nagata20000
質問者

お礼

回答ありがとうございます。 私は連想配列をたくさんつかいたかったのですが そのばあいはint[char[]][3]と宣言しなければ いけなかったようです。 これならx[0],x[1],x[2]が使えます。

関連するQ&A