tag para online metatags keywords generar generador description crear como lua

lua - para - seo meta tags



¿Puede la función de Lua requerir resultados múltiples? (2)

Lua 5.1.3
require lua export implementado en static int ll_require (lua_State *L) en el archivo loadlib.c . Esta función siempre devuelve 1 como número de valores devueltos en la pila.

¿Es posible crear un módulo Lua que devuelva múltiples resultados a través de la función requerida? Actualmente estoy escribiendo una extensión para package.loaders y quiero saber si necesito soportar tal comportamiento.

Por ejemplo, tome el siguiente módulo, llamado mod.lua :

print("module loading") return "string1", "string2"

Que es requerido por el siguiente script:

print("running script") s1, s2 = require("mod") print("s1: " .. tostring(s1)) print("s2: " .. tostring(s2))

Resultados en la siguiente salida:

running script module loading s1: string1 s2: nil

Cuando esperaría que la segunda cadena sea devuelta. No busco usar este tipo de comportamiento, y me doy cuenta de que podría replicarlo devolviendo una tabla y descomprimiendo eso, solo quiero saber si está destinado a funcionar (ya que es una sintaxis de Lua válida) y no puedo encontrar una Respuesta definitiva sobre este en cualquier lugar.


Siempre puede devolver una función desde su módulo y hacer que devuelva varios valores, como a continuación:

foo.lua

return function() return "abc", 123 end

bar.lua

local a, b = require "foo" ()