功能差异

Difference in functions

我很好奇这两种不同类型的函数之间是否存在差异。

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

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

除此之外,您在第二个函数中缺少结尾,这两个代码段是等效的。

根据 Lua 5.4 Reference Manual 3.4.11 - Function Definitions

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 没有 return 值。

函数PrintHello() 打印(“你好”) 结束