Lua学习笔记

前言

  • 1993 年在巴西里约热内卢天主教大学( Pontifical Catholic University of Rio de Janeiro inBrazil )诞生了一门编程语言,发明者是该校的三位研究人员,他们给这门语言取 了个浪漫的名字—— Lua ,在葡萄牙语里代表美丽的月亮。事实证明她没有糟蹋这个优美 的单词,Lua 语言正如它名字所预示的那样成长为一门简洁、优雅且富有乐趣的语言。
  • Lua 从一开始就是作为一门方便嵌入(其它应用程序)并可扩展的轻量级脚本语言来设 计的,因此她一直遵从着简单、小巧、可移植、快速的原则,官方实现完全采用 ANSI C 编 写,能以 C 程序库的形式嵌入到宿主程序中。LuaJIT 2 和标准 Lua 5.1 解释器采用的是著 名的 MIT 许可协议。
  • 前端:正由于上述特点,所以 Lua 在游戏开发、机器人控制、分布式应用、图像处理、生物 信息学等各种各样的领域中得到了越来越广泛的应用。其中尤以游戏开发为最,许多著名 的游戏,比如 Escape from Monkey Island、World of Warcraft、大话西游,都采用了 Lua 来配合引擎完成数据描述、配置管理和逻辑控制等任务。即使像 Redis 这样中性的内存键 值数据库也提供了内嵌用户 Lua 脚本的官方支持。
  • 后端:Skynet 是一个为网络游戏服务器设计的轻量框架。但它本身并没有任何为网络游戏业 务而特别设计的部分,所以尽可以把它用于其它领域。 OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精 良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展 性极高的动态 Web 应用、Web 服务和动态网关。使用 Lua 脚本语言调动 Nginx 支持的 各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性 能 Web 应用系统。
  • Lua更多介绍见维基百科

学习资料推荐

  • 首先想到的就是菜鸟教程:Lua教程

环境安装

官方推荐的方法请点击跳转:http://luadist.org/

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

Windows

Lua for Windows v5.1.5-52 Released
在这里插入图片描述

Lua基本语法

交互式编程

  • 与python类似,使用lualua -i即可进入交互式环境
 ~ % lua 
Lua 5.3.0  Copyright (C) 1994-2015 Lua.org, PUC-Rio
~ % lua -i                                                              
Lua 5.3.0  Copyright (C) 1994-2015 Lua.org, PUC-Rio

脚本式编程

与python或shell、perl一样,定义如下的文件,即可使用lua hello.lua来运行文件!如果想使用./hello.lua的格式,请记得给予权限(没关系,失败了加上就行了!)

ubuntu@ubuntu ~ % cat hello.lua                                                          [0]
#!/usr/local/bin/lua

print("hello world!")
print("你好呀,我是·Lua")

ubuntu@ubuntu ~ % lua hello.lua                                                          [0]
hello world!
你好呀,我是·Lua

注释

  • 注意下面的格式,与c语言、python等对比即可!
#!/usr/local/bin/lua

--print("hello world!")
print("你好呀,我是·Lua")

--[[
print("hello world!")
print("你好呀,我是·Lua")
--]]

全局变量

在默认情况下,变量总是认为是全局的。

全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil。
因此,如果想删除一个全局变量,只需要将变量赋值为nil。

Lua数据类型

数据类型描述
nil这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。
boolean如java中的,包含两个值:false和true。
number表示双精度类型的实浮点数
string字符串由一对双引号或单引号来表示
function由 C 或 Lua 编写的函数
userdata表示任意存储在变量中的C数据结构
thread表示执行的独立线路,用于执行协同程序
tableLua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字、字符串或表类型。
在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。
ubuntu@ubuntu ~ % cat hello.lua                                                          [0]
#!/usr/local/bin/lua

print("Lua数据类型测试")
print(type("Hello world"))      
print(type(10.4*3))             
print(type(print))             
print(type(type))              
print(type(true))               
print(type(nil))                
print(type(type(X)))    
        
ubuntu@ubuntu ~ % lua hello.lua                                                          [0]
Lua数据类型测试
string
number
function
function
boolean
nil
string

更多知识

  • 查看别处资料吧!

后记

Lua你用了多久!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰之行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值