0

我在使用 Scribunto 调用 Lua 内置函数时遇到问题。

我创建了基本模块Module:Item

local p = {}; 
function p.test(frame)
    print("Hello World!")
end
return p

我在不同的页面中调用它{{#invoke: Item | test}} 并收到以下错误:

Lua error in Module:Item at line 3: attempt to call global 'print' (a nil value).
Backtrace:
    1. (tail call): ?
    2. Module:Item:3: in function "chunk"
    3. mw.lua:511: ?
    4. (tail call): ?
    5. [C]: in function "xpcall"
    6. MWServer.lua:99: in function "handleCall"
    7. MWServer.lua:313: in function "dispatch"
    8. MWServer.lua:52: in function "execute"
    9. mw_main.lua:7: in main chunk
    10. [C]: ?

由于 print 是 Lua 的内置功能,我感觉问题出在电脑上的某个地方。但是,当我导入 wiki 信息框时,它们工作正常。

版本:

Linux Mint Tara - 基于 ubuntu 18 的 Cinnamon

媒体维基 1.31.7

Scribunto (106fbf4) 2018 年 5 月 15 日 17:24

路亚 5.1.5

非常感谢任何指出问题所在的帮助。

4

1 回答 1

2

Scribunto 故意不包括print. 其手册中的“删除的功能和包”部分对此进行了说明:

在 wikitech-l 上进行了讨论,并决定应该省略它以支持返回值,以提高代码质量。如有必要,可以使用 mw.log() 将信息输出到调试控制台。

于 2020-06-13T16:44:30.727 回答