3K+ 次查看
从 C 调用 Lua 函数需要一系列步骤并掌握 Lua 库函数。Lua 提供了几个库函数,当我们想要从 C 调用 Lua 函数或反之亦然时可以使用这些函数。一些最常用的从 C 调用 Lua 函数的 Lua 库函数是:luaL_dofile(L, "myFile.lua");lua_getglobal(L, "add");lua_pushnumber(L, a);等等。当我们从 C 调用 Lua 函数时,我们将使用这些函数。第一步是关闭 Lua 解释器,为此我们需要在 C 中编写代码。示例考虑… 阅读更多
271 次查看
Lua 提供了自动垃圾回收,这对于提供安全的内存管理非常有帮助。它基本上意味着您无需担心新创建的对象或如何分配内存。Lua 正在运行垃圾回收器以收集所有死亡对象(即在 Lua 中无法访问的对象)以执行自动内存管理。Lua 还为我们提供了不同的函数,我们可以使用这些函数与垃圾回收器交互,这些函数是:collectgarbage ( "collect") - 返回一个数字,表示收集器是否执行了完整的垃圾回收周期。collectgarbage ( "count") - 返回… 阅读更多
1K+ 次查看
复制表意味着我们希望一个表中存在的所有值或对都存在于另一个表中。在 Lua 中,没有我们可以用来创建此类表的标准库函数,但我们可以创建自己的函数来做到这一点。让我们在 Lua 中创建一个函数,该函数将一个表作为参数,并创建一个新表,该表将是作为参数传递给函数的表的精确副本。示例考虑以下示例作为参考:- 实时演示a = {} a["name"] = "mukul" a["age"] = 23 a["isWorking"] = … 阅读更多
231 次查看
我们知道 JavaScript 和 Lua 的流行程度和用例之间存在巨大差距。除了流行程度和用例方面的差距之外,这些语言在代码级别上也存在许多差异。下表突出显示了 JavaScript 和 Lua 之间的一些最显着差异。关键JavaScriptLua比较时的隐式转换JavaScript 在比较任何两个对象时(使用 == 或 != 比较运算符)会进行隐式转换。Lua 在使用比较运算符时不会在类型之间转换。运算符优先级在 JavaScript 中,==、===、!= 和 !== 运算符的优先级低于 >、>=、
5K+ 次查看
Lua 中的 .(点) 运算符用于调用对象的函数,它是 Lua 中广泛使用的运算符。Lua 中的 :(冒号) 运算符用于当您想要将一个不可见的参数传递给您正在调用的对象的函数时。让我们考虑一个示例,其中我们将有一个包含两个函数的对象,我们将尝试访问这些函数,首先使用点运算符,其次使用冒号运算符。示例考虑以下示例:- 实时演示returnX = {foo = function(x, y) return x … 阅读更多
7K+ 次查看
我们可以使用一个简单的函数将两个表连接在一起,但在 Lua 中,不存在用于此目的的库函数。在 Lua 中连接两个表的方法有很多种。我写了两种方法,在复杂度方面它们的表现大致相同。第一种方法如下:function TableConcat(t1, t2) for i=1, #t2 do t1[#t1+1] = t2[i] end return t1 end另一种实现相同目标的方法是使用 ipairs() 函数。示例考虑以下示例:for _, v in ipairs(t2) do … 阅读更多
2K+ 次查看
字符串连接是我们将两个或多个字符串组合在一起的过程,在大多数编程语言中,这可以通过使用赋值运算符来完成。在 Lua 中,赋值运算符连接不起作用。示例考虑以下示例:- 实时演示str1 = "tutorials" str2 = "point" 将抛出一个错误 s = str1 + str2 print(s)输出输入:7:尝试将“字符串”与“字符串”相加因此,最直接的方法是使用连接关键字,它由 ..(两个点)表示。让我们考虑一些 Lua 中连接关键字的示例。示例考虑… 阅读更多
在 Lua 中处理命令行参数是任何编程语言的关键特性之一。在 Lua 中,命令行参数存储在一个名为 args 的表中,我们可以使用索引提取所需的任何特定命令行参数。语法lua [选项] [脚本 [参数]]选项是:-e stat- 执行字符串 stat;-l mod- “需要” mod;-i- 在运行脚本后进入交互模式;-v- 打印版本信息;-- - 停止处理选项;-- 执行 stdin 作为文件并停止处理选项。示例让我们考虑一个示例,我们将以交互模式打开 Lua shell,并将脚本作为 dev/null 传递,然后我们… 阅读更多
在缩进方面,Lua 代码不像 Python。因此,您编写的多数代码即使换行也能正常工作,并且您不一定需要将嵌套代码缩进到某个制表符大小。Lua 中的代码缩进更多的是为了使代码看起来更好、更易读。如果您的整个代码都在一行上,或者更糟糕的是,如果它像多行一样,那么恐怕您的代码的可读性很差。虽然我们可以使用代码编辑器的缩进包来进行缩进… 阅读更多
4K+ 次查看
通常情况下,数组的大小是在 nil 之前数组中存在的元素数量。在许多情况下,nil 不允许在数组中,但对于某些应用程序来说,在数组中包含 nil 不是问题。如果我们在数组中允许 nil 值,那么我们必须有一些函数来显式设置数组的大小。Lua 为我们提供了两个函数来操作数组的大小,它们是:setngetnsetn 函数用于显式设置数组的大小,并且… 阅读更多