OK Próbowałem każdy sposób, aby to zrozumieć.Erlang - Global Variables .. tak wiem, wiem
Potrzebuję, aby ten stół był globalny ... Zdałem sobie sprawę, że znacznie mniej wydajne jest przekazywanie TableID wokół .. w zakresie mojego programu.
Więc próbowałem tworząc nową tabelę, a następnie szuka go:
TableID = ets:new(tb, [set,public]),
put({tableUniqueID}, TableID),
Następnie użyłem:
get({tableUniqueID})
iw tej samej funkcji zwraca tableid dobrze ... jeszcze kiedy użyj go w innej funkcji, zwraca wartość undefined.
Co? Myślałem dostać i umieścić wykonane kluczowym globalnym ..
TAKŻE przed tym wszystkim zdałem sobie sprawę, ty „może” wywołać funkcję tabeli przeglądowej jako takie:
ets:lookup(get({tableUniqueID}), msgIn)
samo, funkcja działa, poza nie .. Get Put problemu ..
Wtedy zrozumiałem inny sposób Lookup stolik byłoby wywołując atom tabeli
ets:lookup(tb, msgIn)
ale to nigdy nie działa, nie wewnątrz funkcji, nie out ..
Tak więc moim głównym priorytetem byłoby stwierdzenie, dlaczego wyszukiwanie tablicy za pomocą jej atomu nie jest możliwe. Ale mówi, że jest najbardziej wszędzie, łącznie z instrukcją.
Odbierz/mógłbym żyć bez, Dopóki mogę przechowywać tabelę, następnie odszukaj tabelę za pomocą jej identyfikatora atomu.
Czy ktoś może rzucić światło na ten dylemat?