首页 > 解决方案 > 功能差异

问题描述

我只是好奇这两种不同类型的功能之间是否有区别。

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

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

标签: luagarrys-mod

解决方案


除了您在第二个函数中缺少结尾之外,两个片段都是等效的。

根据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没有返回值。


推荐阅读