函数的区别

我很好奇这两种不同类型的函数之间是否有区别。

function PrintHello()
    return print("Hello")
end

PrintHello = function()
    return print("Hello")
点赞
用户2858170
用户2858170

除了第二个函数缺少结尾外,两个代码片段是等价的。

根据Lua 5.4参考手册3.4.11 - 函数定义

function PrintHello()
  print("Hello")
end

可以翻译成

PrintHello = function()
  print("Hello")
end

正如你在手册中也会发现,对于局部函数有所不同。

local function a() end

可以翻译成

local function a;
a = function() end

这可以让a在递归调用中引用其自身。

不要使用return print("Hello"),改成print("Hello")print没有返回值。

2021-04-20 14:31:03
用户15715293
用户15715293
function PrintHello()
    print("Hello")
end

将上述 Lua 代码翻译成中文并保留原本的 markdown 格式:

function PrintHello()
    print("你好")
end
2021-04-21 05:22:36