【问题标题】:Difference in functions功能差异
【发布时间】:2021-07-14 18:21:26
【问题描述】:

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

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

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

【问题讨论】:

  • 对于全局函数没有区别。但是当您尝试定义递归函数时,局部函数 local function f() endlocal f = function() end 是不同的。

标签: lua garrys-mod


【解决方案1】:

除了你在第二个函数中缺少一个结尾之外,两个 sn-ps 是等效的。

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

【讨论】:

  • 感谢您的回复和回答,我有 Lua 书但我想我需要开始阅读它。我以为我对这门语言的了解还不错,只是不是所有的东西。 :)
【解决方案2】:

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

【讨论】:

  • 如何回答这个问题?
猜你喜欢
  • 1970-01-01
  • 2020-05-27
  • 2011-11-05
  • 1970-01-01
  • 2016-03-16
  • 2016-10-14
  • 2014-02-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多