Lua 打印 Table

之前在 Lua 代码的编写中写过一些打印表的函数用于调试,这次在看 z.lua 的实现中看到了非常完美的打印表的方法,于是在将代码改得更规范后记录一下: 使用 luacheck 检...

2023 Feb 11 · 1 min · vaaandark

Lua 中的三目运算

在看 skywind3000 大神写的 z.lua 时发现了神秘写法: os.argv = arg ~= nil and arg or {} os.path.sep = windows and '\\' or '/' 不需要怎么思考就能知道这个是三目运算。但是在我认知中,Lua 是不支持三目运...

2023 Feb 09 · 2 min · vaaandark

垃圾回收

之前学习了 Lua 的 Table 和协程,对 Lua 中另一个重要模块 GC 还有很多疑问,这次就来学习一下。 GC 简介与策略分类 在计算机科学中,垃圾收集(GC)是一种自动内存...

2022 Sep 17 · 7 min · vaaandark

如何使用Lua写一个NeoVim插件

之前学习了如何写 Lua 程序,又因为 NeoVim 的插件可以用 Lua 写,所以想学习一下插件开发。 插件目录结构 我们的插件应当有至少两个目录:plugin用于放mai...

2022 Aug 18 · 3 min · vaaandark

Lua Coroutine

Lua 的一大特色就是协程的使用,在解释型语言中,如果不考虑嵌入到较为低级的语言(如 C 语言)中,就只需要操作调用栈并保存好上下文状态即可。但是 Lua 并...

2022 May 13 · 6 min · vaaandark

Lua Table

之前学习 Lua 的时候就对它的 Table 很感兴趣,最近在看 Lua 解释器的源码,因此就想研究一下具体是怎么实现这个 Lua 之中最为重要的数据结构的。 Lua Table 简介 在 Lua 语言之...

2022 May 11 · 7 min · vaaandark

Lua入门

最近对脚本语言 Lua 很感兴趣,其一是因为它可以很方便地调用 C 语言库,其二是因为它是很多现代化工具的配置语言(比如 NeoVim ),另外 Lua 的源代码不是很长,因...

2022 Mar 23 · 6 min · vaaandark