01 Lua 简介和软件安装

简介: Lua 体积小、启动速度快,一个完整的 Lua 解释器不过200k,在所有脚本引擎中,Lua 的速度可以说是最快的。所以 Lua 是作为嵌入式脚本的最佳选择。

我是陈皮,一个在互联网 Coding 的 ITer,个人微信公众号「陈皮的JavaLib」关注第一时间阅读最新技术文章。

1 Lua 简介

Lua 是一个小巧的脚本语言,是巴西里约热内卢天主教大学里的一个研究小组于1993年研发的。

Lua 使用标准 C 语言编写并以源代码形式开放,几乎在所有操作系统和平台上都能编译运行。Lua 脚本可以调用 C/C++ 函数,也可以被 C/C++ 代码调用,所以 Lua 在应用程序中可以被广泛应用。

Lua 并没有提供强大的库,这是由它的定位决定的。所以 Lua 不适合作为开发独立应用程序的语言。其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。

Lua 体积小、启动速度快,一个完整的 Lua 解释器不过200k,在所有脚本引擎中,Lua 的速度可以说是最快的。所以 Lua 是作为嵌入式脚本的最佳选择。这也就是我们为什么要学习 Lua 这门语言。

那 Lua 语言能干吗呢?其实它主要是用作脚本语言,用来开发脚本,例如编写游戏辅助脚本,在 Redis 中使用 Lua 脚本等。

Lua 官网地址:http://www.lua.org/

2 Lua 特性

  • 轻量级:Lua 使用标准 C 语言编写,Lua 语言的官方版本只包括一个精简的核心和最基本的库,体积小、启动速度快,一个完整的 Lua 解释器不过200k,适合嵌入在别的程序里。
  • 可扩展:Lua 提供了非常易于使用的扩展接口和机制,由宿主语言(通常是 C 或 C++)提供这些功能,Lua 可以使用它们,就像是本来就内置的功能一样。
  • 其它特性:
  • 支持面向过程(procedure-oriented)编程和函数式编程(functional programming)。
  • 自动内存管理。
  • 只提供了一种通用类型的表(table),但可以用它实现数组,哈希表,集合,对象。
  • 闭包(closure),通过闭包和表可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。
  • 提供多线程(协同进程,并非操作系统所支持的线程)支持。

3 应用场景

  • 游戏开发,例如游戏辅助脚本。
  • 应用脚本,例如 Redis 使用 Lua 脚本。
  • 数据库插件,例如 MySQL Proxy 和 MySQL WorkBench。
  • 安全系统,如入侵检测系统。

4 环境安装

目前 Lua 最新版本是 Lua 5.4.3。可在官网下载: http://www.lua.org/download.html

Windows 版本安装包可以在 Github 下载:https://github.com/rjpcomputing/luaforwindows/releases

4.1 Linux 平台上安装

Linux 系统上安装 Lua 非常简单,直接下载压缩包(大小才 350K),解压编译即可。

# 安装gcc编译器,相关依赖yum install -y readline-dev readline-devel
yum install -ygcc# 下载压缩包curl-R-O http://www.lua.org/ftp/lua-5.4.3.tar.gz
# 解压tar -zxvf lua-5.4.3.tar.gz 
# 进入解压目录cd lua-5.4.3
# 编译make linux test
# 安装,此步骤也可以省略make install

打开 Lua 交互程序,使用 Lua 的打印语句,验证并体验第一个程序。

[root@chenpihost lua-5.4.3]# lua -iLua 5.4.3  Copyright (C) 1994-2021 Lua.org, PUC-Rio
> print("Hello 陈皮的JavaLib")
Hello 陈皮的JavaLib
>

当然也可以新建一个 Lua 脚本文件,例如 chenpi.lua,然后打开文件编写如下代码。

print("Hello 陈皮的JavaLib")

执行以下命令,执行 Lua 脚本。

[root@chenpihost lua-5.4.3]# lua chenpi.lua Hello 陈皮的JavaLib

当然也可以将 Lua 脚本作为一个可执行文件来执行,第一行说明用什么解释器来执行,Lua 脚本内容如下:

#!/usr/local/bin/luaprint("Hello 陈皮的JavaLib")

然后赋予文件可执行权限,然后执行。

[root@chenpihost lua-5.4.3]# chmod +x chenpi.lua[root@chenpihost lua-5.4.3]# ./chenpi.lua Hello 陈皮的JavaLib

4.2 Window 平台上安装

下载压缩包,解压到我们想要安装的目录下即可。

解压后,双击打开 files 目录下的 lua5.1.exe 文件即可打开交互窗口,如下:


Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio
> print("Hello 陈皮的JavaLib")
Hello 陈皮的JavaLib
>

而且在 SciTE 目录下 SciTE.exe 程序是一个可编辑 Lua 代码的编辑器。


本次分享到此结束啦~~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,您的支持就是我创作最大的动力!

相关文章
|
程序员 C++ 开发者
《Lua游戏开发实践指南》一2.2Lua简介
本节书摘来华章计算机《Lua游戏开发实践指南》一书中的第2章 ,第2.2节,(美)Paul SchuytemaMark Manyen著 田剑译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2942 0
|
人工智能 程序员 C++
《Lua游戏开发实践指南》一2.1脚本语言简介
本节书摘来华章计算机《Lua游戏开发实践指南》一书中的第2章 ,第2.1节,(美)Paul SchuytemaMark Manyen著 田剑译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1252 0
|
6月前
|
存储 NoSQL Redis
Redis的Lua脚本有什么作用?
Redis Lua脚本用于减少网络开销、实现原子操作及扩展指令集。它能合并操作降低网络延迟,保证原子性,替代不支持回滚的事务。通过脚本,代码复用率提高,且可自定义指令,如实现分布式锁,增强Redis功能和灵活性。
249 1
|
1月前
|
缓存 分布式计算 NoSQL
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
29 2
|
5月前
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
227 0
|
2月前
|
存储 JSON Ubuntu
如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?
如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?
|
3月前
|
存储 NoSQL Redis
Tair的发展问题之在Redis集群模式下,Lua脚本操作key面临什么问题,如何解决
Tair的发展问题之在Redis集群模式下,Lua脚本操作key面临什么问题,如何解决
|
5月前
|
JSON 监控 数据格式
使用Lua代码扩展上网行为管理软件的脚本功能
本文介绍了如何使用Lua脚本增强上网行为管理,包括过滤URL、记录用户访问日志、控制带宽和自动提交监控数据到网站。Lua是一种轻量级语言,适合编写扩展脚本。文中提供多个示例代码,如URL过滤器、用户活动日志记录器和带宽控制器,帮助用户根据需求定制网络管理功能。通过这些示例,用户可以快速掌握Lua在上网行为管理中的应用。
174 4
|
5月前
|
NoSQL API Redis
使用Redis Lua脚本实现高级限流策略
使用Redis Lua脚本实现高级限流策略
199 0