解决方案:Lua环境搭建
解决方案:Lua环境搭建
一、Lua简介
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于 1993 年开发的。
设计目的:
- 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua 特性:
- 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
- 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
- 其它特性:
- 支持面向过程(procedure-oriented)编程和函数式编程(functionalprogramming);
- 自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
- 语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
- 通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。
Lua 应用场景:
- 游戏开发
- 独立应用脚本
- Web 应用脚本
- 扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench
- 安全系统,如入侵检测系统
二、Lua的搭建-linux版本的安装
yum install -y gcc //下载源码编译环境依赖yum install libtermcap-devel ncurses-devel libevent-devel readline-develcurl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz //下载lua源码包到当前位置tar -zxf lua-5.3.5.tar.gz //解压当前lua源码包cd lua-5.3.5 //进入lua源码包根目录make linux test //编译 testmake install //编译安装lua
三、Hello Lua脚本编写
创建hello.lua文件,内容为
print("Hello Lua");
保存 / 执行命令
lua helloworld.lua
输出为:
Hello
四、LUA的基本语法
- lua有交互式编程和脚本式编程。
- 交互式编程就是直接输入语法,就能执行。
- 脚本式编程需要编写脚本,然后再执行命令 执行脚本才可以。
一般采用脚本式编程。(例如:编写一个hello.lua的文件,输入文件内容,并执行lua hell.lua即可)
注释:
单行注释:两个减号是单行注释:
--
多行注释:
--[[多行注释多行注释
--]]
关键字:
关键字就好比java中的 break if else等等一样的效果。lua的关键字如下:
and | break | do | else |
---|---|---|---|
elseif | end | false | for |
function | if | in | local |
nil | not | or | repeat |
return | then | true | until |
while |
定义变量:
全局变量,默认的情况下,定义一个变量都是全局变量,
如果要用局部变量 需要声明为local.例如:
-- 全局变量赋值
a=1
-- 局部变量赋值
local b=2
如果变量没有初始化:则 它的值为nil 这和java中的null不同。
Lua中的数据类型 :
Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。
Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。
数据类型 | 描述 |
---|---|
nil | 这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。 |
boolean | 包含两个值:false和true。 |
number | 表示双精度类型的实浮点数 |
string | 字符串由一对双引号或单引号来表示 |
function | 由 C 或 Lua 编写的函数 |
userdata | 表示任意存储在变量中的C数据结构 |
thread | 表示执行的独立线路,用于执行协同程序 |
table | Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字、字符串或表类型。在Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。 |
流程控制:
如下:类似于if else
--[ 0 为 true ]
if(0) thenprint("0 为 true")
elseprint("0 不为true")
end
函数:
lua中也可以定义函数,类似于java中的方法。例如:
--[[ 函数返回两个值的最大值 --]]
function max(num1, num2)if (num1 > num2) thenresult = num1;elseresult = num2;endreturn result;
end
-- 调用函数
print("两值比较最大值为 ",max(10,4))
print("两值比较最大值为 ",max(5,6))
执行之后的结果:
两值比较最大值为 10
两值比较最大值为 6
require 函数:
require 用于 引入其他的模块,类似于java中的类要引用别的类的效果。
用法:
require("<模块名>")
require "<模块名>"
两种都可以
解决方案:Lua环境搭建相关推荐
- Lua环境搭建 Win10
Lua环境搭建 Win10 一.安装Lua 基于Mingw构建,需要安装好Mingw环境. 点此获取Lua Source Code.选择版本为 5.35, 解压缩,CMD/PS输入make mingw ...
- VS2012+LUA环境搭建
1 .启动VS2012,选择C++下的"win32"项目类型中的"Win2控制台应用程序" 2.工具--选项--项目和解决方案--VC++目录--可执行程序(C ...
- cocos2d lua 环境搭建
标题貌似起的有点不好... 编辑器用sublime text 2 调试用decoda 弄这个sublimetext 2的lua环境和绑定cocos2d-x花了几天时间,郁闷的很... 记录一下吧,也希 ...
- Lua环境搭建以及开发工具
前言: Lua 是一个小巧的脚本语言.作者是巴西人.该语言的设计目的是为 了嵌入应用程序 中,从而为应用程序提供灵活的扩展和定制功能. Lua最著名的应用是在暴 ...
- H5推流解决方案测试环境搭建指南
一.部署服务器端 centos (阿里云服务器系统) 1.sudo yum install git 2.git clone https://github.com/phoboslab/jsmpeg.gi ...
- Python+Eclipse+PyDev开发环境搭建及Prophet工具的使用
我使用的是python3.6+eclipse4.7+PyDev5.7,这三个版本之间是兼容的,如果版本不兼容,搭建环境时会出现很多问题.以下是几个建议和注意事项: (1) python版本在3.5 ...
- OpenStack环境搭建(六:常见问题及解决方案总结)
实验要求: 完成Virtual box平台安装,会应用相关操作: 在virtual box虚拟平台上部署Fuel Master节点: 在virtual box虚拟平台上部署计算节点Computer: ...
- ESXi6.5环境搭建(五:常见问题及解决方案实验总结)
实验目的及要求 完成VMware workstations安装,会应用相关操作: 完成虚拟机中ESXI6.5平台的安装及网络环境配置: 完成VMware vSphere Client 6.0软件在PC ...
- Lua 学习笔记(一)环境搭建
Lua是一个小巧的脚本语言.Lua由标准C编写而成,代码简洁,几乎在所有的操作系统和平台上都可以编译,运行. 主要讲一下mac和win下的环境搭建. 工具: 1.Sublime Text 2 2.Lu ...
最新文章
- springmvc教程--RESTful支持详解
- 清空mysql注册表步骤_完全卸载MySQL 数据库清空MySql注册表
- python2.7+opencv3.1人脸识别
- as上的git到码云操作_如何使用git从码云克隆项目到本地?
- 统计自然语言处理基础——学习摘要(1)
- Java中基本类型和引用类型(简单介绍)
- 解决IIS进程回收后第一次访问慢的问题
- MINIST数据集实践
- DHCP报文抓包分析
- 降压恒流 LED 驱动器
- [处理方法]微信内置浏览器 打开页面空白
- Apple Store教育优惠(161103)
- Time——信仰:梦在远方,路在脚下
- cubieboard mysql_【Linux】【笔记】Cubieboard开发板Debian系统+SAMBA共享+远程迅雷Xware+Nginx+PH......
- 乘风破浪潮头立,扬帆起航正当时——韩国5G商用情况解析
- 人体自身的神奇补肾法 ——你在外面花多少钱都学不到的转
- Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException
- 永磁同步直线电机仿真实例,仿真教学 maxwell16.0版本 12槽11极
- raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+‘; not sup
- 计算机用户被锁定如何解除,计算机被锁定怎样解除?用户受限又怎样解除?
热门文章
- 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
- 作业6--四则运算APP之Sprint计划
- Python算法(含源代码下载)
- 如何安装Windows操作系统(五)驱动安装
- 在Solaris 下使用Os Watcher 监控Oracle
- Scala中的match(模式匹配)
- Java Protected 解读
- Centos/Linux下如何查看网关地址/Gateway地址
- Django之Model操作
- [数据库]SQL Server 用户NT AUTHORITY\IUSR 登录失败