J'ai un dictionnaire que j'utilise pour stocker un autre dictionnaire en utilisant le nom d'un paramètre.Stocker un dictionnaire dans un dictionnaire dans Erlang
Je reçois une erreur de concordance côté droit.
ici est mon code
handle_cast({setState, Id}, State) ->
Id0 = dict:new(),
DQueue = queue:new(),
UQueue = queue:new(),
Id1 = dict:store(dQueue, [DQueue], Id0),
Id2 = dict:store(uQueue, [UQueue], Id1),
Id3 = dict:store(dSpeed, [], Id2),
Id4 = dict:store(uSpeed, [], Id3),
D = dict:store(Id, [Id4], State),
State = D,
{noreply, State};
Je ne suis pas sûr où l'erreur vient. Je pensais que c'était parce que je stockais Id comme clé dans le dictionnaire principal avec le nouveau dictionnaire interne comme valeur.
J'ai besoin que le nom du dictionnaire interne soit la valeur de l'Id car il y en aura beaucoup et je dois y accéder par Id plus tard.
Est-ce que je règle correctement le dictionnaire? Est-ce que erlang permet aux dictionnaires de contenir des dictionnaires?
Merci
Merci. J'ai changé certaines choses. Sa partie d'un projet uni: P je vais éditer ceux maintenant merci. Donc je devrais juste le faire par ex. NewState = D. {noreply, NewState}. ? ;) – jarryd
que ce soit ou juste '{noreply, D}' –
Comment cela affecte-t-il la mémoire? Créer un nouveau Dict lors du stockage, en passant dans le vieux dict? Ou l'écrase-t-il immédiatement? – jarryd