初识lua

  经常看到别人在讨论redis lua,说其如何如何好用,如何如何强大。那么lua到底是什么呢?

  接下来,我们对lua进行一个入门级了解。 

  Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

  Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de   Figueiredo所组成并于1993年开发。

为什么要使用lua呢

  其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

  知乎上给出的答案更精彩,我们来看下:

其一:

其二:

  由此,可以知道lua广泛应用与游戏邻域,但它绝不仅限于游戏领域。因为它的特性。

lua特性

  • 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
  • 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
  • 其它特性:
    • 支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
    • 自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
    • 语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
    • 通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。

lua应用场景

  • 游戏开发
  • 独立应用脚本
  • Web 应用脚本
  • 扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench
  • 安全系统,如入侵检测系统

lua环境安装

  Linux & Mac上安装 Lua 安装非常简单,只需要下载源码包并在终端解压编译即可,本文使用了5.3.0版本进行安装:

linux系统上安装

curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz
tar zxf lua-5.3.0.tar.gz
cd lua-5.3.0
make linux test
make install


Mac OS X系统上安装

curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz
tar zxf lua-5.3.0.tar.gz
cd lua-5.3.0
make macosx test
make install

window系统上安装

  window下你可以使用一个叫"SciTE"的IDE环境来执行lua程序,下载地址为:

  双击安装后即可在该环境下编写 Lua 程序并运行。

  你也可以使用 Lua 官方推荐的方法使用 LuaDist:http://luadist.org/

hello world

  我们创建一个 HelloWorld.lua 文件,代码如下:

print("Hello World!")

执行以下命令:

$ lua HelloWorld.lua

输出结果为:

Hello World!
 

  这就是lua的入门了解。具体语法和使用,包括redis内置lua解释器会在后面学习中补充。

原文地址:https://www.cnblogs.com/leewq/p/8479642.html

时间: 2024-07-29 14:23:52

初识lua的相关文章

LUA学习之路--初识LUA

LUA在葡萄牙语中是“月亮”的意思.1993年由巴西的Ponifical Catholic University开发.该语言是由一个来自计算机图形技术组织的团队开发,并作为自由软件发行.LUA开发小组的目标是开发一种小巧.高效并且能够很好的和C语言一起工作的编程语言.在脚本语言领域,LUA是最快.最高效的脚本语言之一. LUA和传统的脚本语言不同,它是一种易整合语言(glue language).一般的脚本语言用于控制执行重复的任务,而易整合语言可以让使用者把其他语言的功能整合在一起.这样就让脚

lua的函数初识

学习到Lua的函数,觉得有必要记下来. 参考教程:Programming in Lua 函数可以以表达式或陈述语句出现,如下所示: print(8*9, 9/8) a = math.sin(3) + math.cos(10) 书写函数时有个小规则,如果函数只有一个参数,或者是一串字符,或者是一个表结构时,括号可以省略: print "Hello World" <--> print("Hello World") dofile 'a.lua' <--&

我所理解cocos2d-x 3.6 lua -- 初识MVC

简单说几句: 最近的游戏项目中使用了lua脚本来开发,项目中用到了MVC框架. 从cocos2d-x 3.6 创建lua demo, 简单分享一下思路和一些开发中的技巧. 先简单说说MVC,即Model View Controller. Model(模型):一般负责数据的处理 View(视图):一般负责界面的显示 Controller(控制器):一般负责前端的逻辑处理 比如 :拿一款手机游戏来说,界面UI的显示.布局等就是View负责:点击了按钮,手势的滑动等操作由Controller来处理:游

openresty(nginx+lua)初识

1.新增项目配置文件: vim /usr/example/example1.conf --将以下内容加入example1.conf server { listen 80; server_name _; #~ 表示匹配所有请求路径 #(\d+)/(\d+) 正则匹配 location ~ /lua_request/(\d+)/(\d+) { #设置nginx变量 set $a $1; set $b $host; default_type "text/html"; #nginx内容处理 c

lua table 初识

  1 local demo = {"demoValue"} 2 local function fun() 3 print"hello world" 4 end 5 local tableDemo = { 6 ["a3132t"] = "valide?", 7 [9] = fun, 8 [fun] = "a funciton.", 9 ["demo"] = "anoter st

Redis初识、设计思想与一些学习资源推荐

一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年3 月15 日起,Redis 的开发工作由VMware 主持. Redis 是一个Key-Value 存储系统.和Memcached 类似,它支持存储的value 类型相对更多, 包括string(字符串).hash(散列).list(链表).set(集合)和zset(有序集合).这些数据类型支持p

lua的local问题

1. 初识 使用Local带来错误.自己写了一个递归的函数,结果报错: local fLocal = function(n) if (n == 1) then return n; else return n + fLocal(n-1) end end print("result:", fLocal(2)) 错误信息: lua: ...rk\work_diary\task\Lua_Study\code\brain_storming.lua:152: attempt to call glo

Cocos2d-x初识(一)

Cocos2d-x从以前苹果平台上的Cocos2d发展而来,版本已经更新到了3.1.1.作为一个跨平台的游戏开发引擎,现在已经被上百个国家在使用,这也是国人的骄傲!Cocos2d-x现在支持C++.Lua和JS开发语言,支持的平台也几乎涵盖了目前主流的平台其中包括Windows7.Android和IOS等,具体的平台支持请参考官网.具触控官方2013秋季开发者大会的消息Cocos2d-x现在已经有了3D的雏形可能在2015年以后发布3D版. 接下来,我们将去认识一些外围的工具,这些工具帮助我们快

[MySQL 5.6] 初识5.6的optimizer trace

在MySQL5.6中,支持将执行的SQL的查询计划树记录下来,目前来看,即使对于非常简单的查询,也会打印出冗长的查询计划,看起来似乎不是很可读,不过对于一个经验丰富,对查询计划的生成过程比较了解的DBA而言,这是一个优化SQL的宝藏,因为暴露了大量的内部产生查询计划的信息给用户,这意味着,我们可以对开销较大的部分进行优化. 新参数optimizer_trace可以控制是否为执行的SQL生成查询计划树,默认关闭,我们也建议关闭,因为它会产生额外的性能开销(dimitrik的评测:http://di