gpt4 book ai didi

lua - Lua 的 require 函数可以返回多个结果吗?

转载 作者:行者123 更新时间:2023-12-03 13:59:33 25 4
gpt4 key购买 nike

是否可以创建一个通过 require 函数返回多个结果的 Lua 模块?我目前正在为 package.loaders 编写扩展,我想知道是否需要支持这种行为。

例如,采用以下模块,名为 mod.lua :

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

以下脚本需要它:
print("running script")
s1, s2 = require("mod")
print("s1: " .. tostring(s1))
print("s2: " .. tostring(s2))

结果如下:
running script
module loading
s1: string1
s2: nil

当我期望返回第二个字符串时。我不想使用这种行为,我意识到你可以通过返回一个表并解包来复制它,我只是想知道它是否可以工作(因为它是有效的 Lua 语法)并且我找不到在任何地方都可以给出明确的答案。

最佳答案

你总是可以从你的模块中返回一个函数并让它返回多个值,如下所示:

foo.lua

return function() return "abc", 123 end

酒吧.lua
local a, b = require "foo" ()

关于lua - Lua 的 require 函数可以返回多个结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9470498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com