Jestem świadomy słabej funkcjonalności tabel w Lua, jednak chciałbym mieć słabe odniesienie z jedną zmienną.Słaba referencja Lua
Widziałem this proposal co sugeruje API następująco:
-- creation
ref = weakref(obj)
-- dereference
obj = ref()
które wydają się idealne. Jednak wydaje się, że nie ma to miejsca w dokumentacji w innym miejscu; tylko słabe tabele.
Czy istnieje coś podobnego do funkcji Pythona w wersji weak reference to object?
Co ostatecznie próbujesz zrobić tutaj? Możesz naśladować to samemu, używając tabeli z metatable, w którą wierzę (lub z 'newproxy' i metatable), jeśli naprawdę potrzebujesz. –
Używam middleclass dla OO, przekazując zamknięcie z objA na objB. Kiedy objA wychodzi poza zasięg, zamknięcie uniemożliwia obu GC'd instancji, ponieważ zawiera odniesienie do objA. Nigdy wcześniej nie słyszałem o nowym proxy, idąc do google ... – MarkNS
hmmm .. "Nieudokumentowana funkcja newproxy została usunięta w Lua 5.2, ponieważ została ona nadmiarowa dzięki innym funkcjom dodanym w tej wersji" od http: // lua-users .org/wiki/HiddenFeatures – MarkNS