In base al manuale 5.1 lua, lua_xmove
sposta i valori tra pile di fili diversi appartenenti allo stesso stato Lua. Ma, mi è capitato casualmente di usarlo per spostare valori attraverso diversi stati Lua e sembrava funzionare bene! Esistono altre API per spostare valori da uno stato Lua a un altro (in 5.1) oppure è possibile utilizzare lua_xmove
?lua_xmove tra diversi stati lua
risposta
Lua memorizza i dati di raccolta dati obsoleti nello stato globale. Quindi, se sposti GC o oggetti stringa negli stati, puoi potenzialmente confondere il garbage collector e creare riferimenti ciondolanti.
Quindi, mentre potrebbe sembrare che funzioni, potrebbe facilmente causare problemi in seguito.
Per riferimento, vedere this mailing list thread dove gli sviluppatori discutono di questo problema esatto.
Nota che lua_xmove
vuol controllare che gli stati globali sono gli stessi:
api_check(from, G(from) == G(to));
Si noti che 'api_check' cambia comportamento in base alle opzioni di compilazione. Vedere il capitolo 3 del manuale (cap. 4 in 5.2) e luaconf.h. Credo che i normali build di rilascio di Lua non abilitino i controlli API. – RBerteig
L'intento del controllo api è cristallino, 'from' dovrebbe essere uguale a' to'. – doug65536
Cosa? No, 'from' non dovrebbe essere uguale a' to', che risulterebbe in un no-op. Ciò che è vero è che lo stato globale (quello che risulta da una chiamata a 'lua_newstate()' nell'albero di stato deve essere lo stesso per entrambi gli argomenti. In altre parole, sia 'to' che' from' derivano da un (eventualmente vuota) catena di 'lua_newthread()' chiama root su alcuni stati iniziali 'L'. – BadZen
- 1. Stati Ajax diversi per componenti diversi in PrimeFaces
- 2. ImageButton con diversi stati dimensione immagini
- 3. Git: come creare diversi stati non sommersi?
- 4. Differenza tra 'e "entro Lua
- 5. Differenza tra. e: in Lua
- 6. Perché Equals() e == sono stati progettati per essere diversi?
- 7. sottili differenze tra JavaScript e Lua
- 8. struct con lo stesso nome ma diversi Stati in C++
- 9. Un sacco di controlli della GUI che indicano stati diversi
- 10. Lua, cos'è Lua?
- 11. differenza tra i diversi overload di String.Compare
- 12. Impostazione di diversi tipi di carattere per i diversi stati di UIButton
- 13. diversi tra "getDocumentElement" e "getFirstChild"
- 14. Sincronizzazione Java tra JVM diversi
- 15. Differenza tra diversi formati scanf
- 16. diversi tra @Model e @model
- 17. Diversi tra $ .each e ko.utils.arrayForEach
- 18. Codice indentazione Lua in Lua
- 19. Generazione di numeri casuali diversi tra OS
- 20. Angolare 2: scambio tra diversi componenti senza distruggerli
- 21. Animare tra due stati di una vista, utilizzando l'animazione personalizzata
- 22. router ui angolare che passa dati tra stati senza URL
- 23. Come passare il parametro tra stati non in un URL?
- 24. Silverlight 3 diversi comportamenti tra i browser
- 25. Il sottodominio è considerato tra domini diversi?
- 26. Differenza tra due date con diversi anni
- 27. Join tra diversi database in CouchDB
- 28. Come sincronizzare i dati tra diversi dispositivi
- 29. git diff tra due file diversi
- 30. Condivisione di variabili tra diversi quaderni jupyter
Uno dei modi in movimento/copia Lua oggetti tra diversi 'Lua States' su diversi thread: http://stackoverflow.com/a/9573063/1150918 – Kamiccolo
Ho digitato il codice * LuaLanes * e vedo il codice che sta eseguendo una copia da uno stato a un altro. Grazie. – vyom