Soy nuevo en Lua y quiero imprimir el contenido de una tabla para depuración. Puedo hacerlo iterando sobre la mesa yo mismo. Sin embargo, dado que esto me parece un problema muy común, creo que debe haber una manera de hacerlo o alguien debe haber escrito una buena biblioteca que lo haga. ¿Cuál es la forma estándar de hacer esto en Lua?Representación de cadena legible por humanos de la tabla en Lua
Respuesta
Para mejor o peor, no hay un estándar. Lua es conocida por lo que excluye tanto como por lo que incluye. No hace suposiciones sobre las representaciones de cadenas correctas porque no hay una forma única de manejar cosas como formatos, tablas anidadas, representación de funciones o ciclos de tablas. Dicho esto, no hace daño comenzar con una biblioteca Lua "con baterías incluidas". Tal vez considere Penlight. Su pl.pretty.write hace el truco.
Esta es una instancia del problema general de la serialización de tablas.
Eche un vistazo a at the Table Serialization page at lua-users para algunas implementaciones serias.
Mi lanzar en él se suele definir rápidamente una función como
function lt(t) for k,v in pairs(t) do print(k,v) end end
Ver table.print en https://github.com/rimar/lua-reactor-light/blob/master/util.lua probablemente fue tomado de la biblioteca lualogging
- 1. Intervalo de tiempo legible por humanos automático
- 2. Db2 formateador de error legible por humanos
- 3. Salida XML legible por humanos de Scala?
- 4. Cron a cadena legible para humanos
- 5. C++ IP Address forma legible por humanos
- 6. PLCrashReporter: Creando una stacktrace legible por humanos
- 7. marca de hora a formato legible por humanos
- 8. cadenas de fecha Python diferencia de fechas legible por humanos
- 9. Objective-C NSFilePosixPermissions a NSString legible por humanos
- 10. Convertir milisegundos a lapso de tiempo legible por humanos
- 11. Necesito un formato de documento legible por humanos, pero analizable
- 12. convertir microsegundos en un tiempo legible por humanos
- 13. Convierta cadena de octetos snmp a formato de fecha legible para humanos
- 14. Convertir una marca de tiempo Unix de una fecha legible por humanos en PHP?
- 15. llvm ir a lenguaje de origen legible para los humanos?
- 16. Convirtiendo CMTime a tiempo legible para humanos en Object-C
- 17. Lua tabla de búsqueda
- 18. mesa dentro de la tabla en Lua
- 19. NSKeyedArchiver escribir XML (u otra legible para humanos)?
- 20. El formato doble a la latitud/longitud formato legible por humanos
- 21. iterar a través de la tabla Lua
- 22. Usando Html.LabelPara visualizar una etiqueta legible para humanos?
- 23. Cómo generar un rango de tiempo legible por humanos usando Ruby on Rails
- 24. ¿Cómo convertir xsd a documentación legible para humanos?
- 25. formato a un objeto de fecha para visualizar una fecha legible por humanos
- 26. Lua: creación de tabla implícita con claves de cadena: ¿por qué los corchetes adicionales?
- 27. Crear una lista legible por humanos con "y" insertado antes del último elemento de una lista de ruby
- 28. impresión de horas de apertura de un restaurante de una tabla de base de datos en formato legible por humanos usando php
- 29. Inserción de pares de claves en la tabla de Lua
- 30. Clase ObjC/Cocoa para convertir el tamaño a una secuencia legible por humanos?
vi esa página, pero les resulta difícil de creer que un tal get problema común de resolverse una y otra vez y de una manera tan prolija. – ajmurmann
es por eso que una instalación completa de Lua es de aproximadamente 1Mb (frente a python con 43.3 MB). Usted tiene un punto, pero de nuevo, si bien es posible que necesite la función, muchos otros podrían no (piense en incluir a Lua). No necesita implementarlo una y otra vez, simplemente colóquelo en un archivo, y 'requiérelo' según sea necesario, o póngalo en la variable de entorno 'LUA_INIT', que lo cargará automáticamente (vea el [* independiente * sección] (http://www.lua.org/manual/5.2/manual.html#7) del manual de Lua). – jpjacobs
@ajmurmann - Es difícil de creer, es cierto. Pero Lua es conocida por lo que excluye tanto como por lo que incluye. No hace suposiciones sobre representaciones de cadenas adecuadas porque no hay una sola forma de manejar cosas como formatos, tablas anidadas, representación de funciones o ciclos de tabla. Dicho esto, no hace daño comenzar con una biblioteca Lua "con baterías incluidas". Tal vez considere [Penlight] (http://stevedonovan.github.com/Penlight/). [pl.pretty.write] (http://stevedonovan.github.com/Penlight/api/modules/pl.pretty.html#write) hace el truco. –