lua - 为什么我使用 'end)' 而不是 end |?
问题描述
draw.RoundedBox(0,0,0,100,100,Color(120,255,120))
end)
我正在观看学习 Lua 的教程,更具体地说是用于 Garry's Mod 引擎的 Lua。在教程中,我注意到只使用“end”不起作用。我不得不使用'end)'和')'。
为什么我必须在此代码的末尾放置一个“)”?
解决方案
一些函数将其他函数作为参数。
当你看到一个这样调用的函数时:
hello(param, function(a) print(a) end)
(对不起,糟糕的例子。这个函数并没有真正做任何事情)内部的函数是从函数的源代码内部调用的hello
。
end
是内部函数的)
结尾, 是第一个函数的参数列表的结尾。
所以这里我们hook.Add()
调用了一个函数:
hook.Add("HUDPaint", "DrawMyHud", function()
draw.RoundedBox(0,0,0,100,100,Color(120,255,120))
end)
并来自GMOD wiki:
hook.Add( string eventName, any identifier, function func )
--Add a hook to be called upon the given event occurring.
虽然我们正在调用一个函数,但该函数所做的是在代码中创建一个称为钩子的特殊连接。在事件“HUDPaint”上,GMOD 客户端将调用提供的函数。
编写此函数的另一种可能使含义end)
更清楚的方法是将每个参数设为自己的行:
hook.Add(
"HUDPaint",
"DrawMyHud",
function() draw.RoundedBox(0,0,0,100,100,Color(120,255,120)) end --end of function declaration
) --end of hook.Add function call
推荐阅读
- javascript - 未捕获的类型错误:无法解析模块说明符(Node.js、Express、nact)
- javascript - 如何在同一类中将变量从一个方法传递给另一个方法
- ffmpeg - ffmpeg 4.2.2 一段时间后出现分段错误
- shell - 将 awk 的结果存储在 shell 脚本中
- c - GCC错误包含单独文件时没有此类文件或目录
- python - 按列表划分列表?
- javascript - 无法使用传递给“npm start”的参数配置 React Pre Hook
- arrays - 使用 SDWebImage 时的 UICollectionView 错误
- javascript - 带有下拉选项和函数调用的搜索栏
- java - 在 Java 中实现线程级请求执行上下文