Ok Ich habe versucht jeden Weg, um dies herauszufinden.Erlang - Globale Variablen .. ja ich weiß, ich weiß
Ich brauche diese Tabelle zu einem globalen .. Ich habe festgestellt, dass es viel weniger effizient ist, TableID um .. im Rahmen meines Programms zu übergeben.
Also versuchte ich dann eine neue Tabelle erstellt wird es aufzublicken:
TableID = ets:new(tb, [set,public]),
put({tableUniqueID}, TableID),
Dann habe ich:
get({tableUniqueID})
Und in der gleichen Funktion gibt es TableID ganz gut ... aber wenn ich Verwenden Sie es in einer anderen Funktion, es gibt ein undefined zurück.
Was ?? Ich dachte bekommen und legte einen Schlüssel global gemacht ..
AUCH vor diesem alles, was ich realisiert man „könnte“, wie eine solche Tabelle Lookup-Funktion aufrufen:
ets:lookup(get({tableUniqueID}), msgIn)
Das Gleiche gilt, in Funktion arbeitet, außerhalb nicht .. Setzen Problem Get ..
Dann erkannte ich eine andere Art und Weise eine Tabelle Lookup durch den Aufruf der Atom der Tabelle würde
ets:lookup(tb, msgIn)
Aber das funktioniert nie, nicht innerhalb der Funktion, nicht out ..
Also meine Hauptpriorität wäre zu verstehen, warum ein Tisch durch sein Atom nachschlagen, ist nicht möglich. Aber es sagt, es ist am meisten überall, einschließlich der Bedienungsanleitung.
Der get/put ich könnte ohne leben, Solange ich Tabelle speichern kann, dann suchen Sie die Tabelle nach ihrer Atom-Kennung.
Kann jemand dieses Dilemma beleuchten?