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
相关推荐
stm 学习ing21 分钟前
FPGA 第十讲 避免latch的产生
c语言·开发语言·单片机·嵌入式硬件·fpga开发·fpga
湫ccc1 小时前
《Python基础》之字符串格式化输出
开发语言·python
Red Red1 小时前
网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务
网络·笔记·学习·安全·web安全
mqiqe2 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin2 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
Ysjt | 深3 小时前
C++多线程编程入门教程(优质版)
java·开发语言·jvm·c++
ephemerals__3 小时前
【c++丨STL】list模拟实现(附源码)
开发语言·c++·list
码农飞飞3 小时前
深入理解Rust的模式匹配
开发语言·后端·rust·模式匹配·解构·结构体和枚举