Lua语言基础学习:安装Lua和Lua库管理工具

Lua语言简介

Lua是一种轻量、高效、可嵌入的脚本语言,由巴西里约热内卢天主教大学的研究小组于1993年开发,Lua的解释器非常小巧,编译后的体积很小(如完整解释器不过200KB),这使得它非常适合嵌入到其他应用程序中。Lua的执行速度快,内存占用低,特别适用于需要高性能的应用场景,支持面向过程编程、函数式编程以及通过表和闭包等机制支持面向对象编程的关键机制。

Lua拥有自动垃圾回收机制,可以自动管理内存,避免内存泄漏和其他内存管理问题,降低了程序员的负担,同时提供了强大的扩展机制,如元表(metatable)和元方法(metamethod)等,允许通过C/C++代码为Lua添加新的功能和特性。

在实际应用方面,Lua是许多游戏开发者的首选脚本语言,广泛用于定义游戏逻辑、控制游戏流程、处理游戏事件等。知名游戏如《魔兽世界》和《愤怒的小鸟》就使用了Lua脚本。Lua的轻量级和高效性使其成为嵌入式系统开发的理想选择。它可以用于嵌入式设备的控制和配置,如智能家居、物联网设备等(比如NodeMCU ESP8266)。通过Lua的Web框架(如OpenResty、Lapis等),开发者可以快速构建高性能的Web应用。

官方参考手册:Lua: reference manuals

官方免费教材:Lua Programming Gems

安装Lua和Lua库管理工具luarocks

Linux系统安装方法

Linux系统安装Lua语言及Lua外部库_linux lua-CSDN博客

Windows系统安装方法

Lua下载页面:Lua Binaries Download

这里有以下两种版本:

  1. lua-5.4.2_Win64_bin.zip:这个包包含Windows x64平台上的Lua可执行文件。如果只是想运行Lua脚本或者不需要将Lua集成到其他应用程序中,选择这个包就足够了。解压后可以直接运行lua.exe来执行Lua脚本。
  2. lua-5.4.2_Win64_dllw6_lib.zip:解压后可以在应用程序中使用Lua的DLL,并通过包含头文件来使用Lua的API。如果需要将Lua集成到编写的C/C++应用程序中或者需要使用Lua的API进行开发可以选择这个包。这个包包含Windows x64平台上的Lua动态链接库(DLL)和相关的头文件。

这里我下载的lua-5.4.2_Win64_bin.zip版本 ,解压后将lua54.exe的安装路径添加到环境变量的path中

添加完环境变量后可以使用 Ctrl + C 打开 CMD终端,输入lua或luaxx(xx版本号)测试下是否安装成功:

bash 复制代码
lua

接下来安装Lua的包管理工具LuaRocks,如果网速太慢可以下载我的资源链接,官方下载链接:https://luarocks.github.io/luarocks/releases/luarocks-3.11.1-windows-64.zip

将压缩包解压缩后可以看到里面有两个.exe文件,将这两个文件的安装路径添加环境变量path中

现在环境变量path中应该有lua.exe和luarocks.exe的安装路径

打开cmd终端查看是否安装成功

bash 复制代码
luarocks

编写并运行Lua脚本

新建一个 .lua 文件,将以下代码复制粘贴到lua文件中,将文件命名为first_lua.lua。

Lua 复制代码
// first_lua.lua
N = 8
 
function isplaceok(a, n, c)
    for i = 1, n - 1 do
        if (a[i] == c) or
        (a[i] - i == c - n) or
        (a[i] + i == c + n) then
            return false
        end
    end
    return true
end
 
function printsolution(a)
    for i = 1, N do
        for j = 1, N do
            io.write(a[i] == j and "X" or "-", " ")
        end
        io.write("\n")
    end
    io.write("\n")
end
 
function AoLiGei(a, n)
    if n > N then
        printsolution(a)
    else
        for c = 1, N do
            if isplaceok(a, n, c) then
                a[n] = c
                AoLiGei(a, n + 1)
            end
        end
    end
end
 
AoLiGei({}, 1)

在Lua中存在两种编译方式,lua(直接执行源代码)luac(执行编译后的字节码)

Lua方式

  • 执行效率相对较低,因为每次执行都需要解析源代码。
  • 适用于开发调试阶段,因为源代码易于阅读和修改。
bash 复制代码
lua first_lua.lua

Luac方式

  • 执行效率更高,因为字节码已经预编译,虚拟机可以直接执行。
  • 适用于生产环境,可以减少启动时间和提高运行性能。
bash 复制代码
luac -o output_file.luac first_lua.lua
bash 复制代码
lua output_file.luac
相关推荐
Scott9999HH4 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
码智社5 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海5 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖6 小时前
JDK 26 新特性详解
java·开发语言
马优晨6 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
a1117768 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
我的xiaodoujiao8 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
人邮异步社区8 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大9 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai9 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang