解决方案: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环境搭建相关推荐

  1. Lua环境搭建 Win10

    Lua环境搭建 Win10 一.安装Lua 基于Mingw构建,需要安装好Mingw环境. 点此获取Lua Source Code.选择版本为 5.35, 解压缩,CMD/PS输入make mingw ...

  2. VS2012+LUA环境搭建

    1 .启动VS2012,选择C++下的"win32"项目类型中的"Win2控制台应用程序" 2.工具--选项--项目和解决方案--VC++目录--可执行程序(C ...

  3. cocos2d lua 环境搭建

    标题貌似起的有点不好... 编辑器用sublime text 2 调试用decoda 弄这个sublimetext 2的lua环境和绑定cocos2d-x花了几天时间,郁闷的很... 记录一下吧,也希 ...

  4. Lua环境搭建以及开发工具

    前言:           Lua 是一个小巧的脚本语言.作者是巴西人.该语言的设计目的是为 了嵌入应用程序 中,从而为应用程序提供灵活的扩展和定制功能.           Lua最著名的应用是在暴 ...

  5. H5推流解决方案测试环境搭建指南

    一.部署服务器端 centos (阿里云服务器系统) 1.sudo yum install git 2.git clone https://github.com/phoboslab/jsmpeg.gi ...

  6. Python+Eclipse+PyDev开发环境搭建及Prophet工具的使用

    我使用的是python3.6+eclipse4.7+PyDev5.7,这三个版本之间是兼容的,如果版本不兼容,搭建环境时会出现很多问题.以下是几个建议和注意事项: (1)   python版本在3.5 ...

  7. OpenStack环境搭建(六:常见问题及解决方案总结)

    实验要求: 完成Virtual box平台安装,会应用相关操作: 在virtual box虚拟平台上部署Fuel Master节点: 在virtual box虚拟平台上部署计算节点Computer: ...

  8. ESXi6.5环境搭建(五:常见问题及解决方案实验总结)

    实验目的及要求 完成VMware workstations安装,会应用相关操作: 完成虚拟机中ESXI6.5平台的安装及网络环境配置: 完成VMware vSphere Client 6.0软件在PC ...

  9. Lua 学习笔记(一)环境搭建

    Lua是一个小巧的脚本语言.Lua由标准C编写而成,代码简洁,几乎在所有的操作系统和平台上都可以编译,运行. 主要讲一下mac和win下的环境搭建. 工具: 1.Sublime Text 2 2.Lu ...

最新文章

  1. springmvc教程--RESTful支持详解
  2. 清空mysql注册表步骤_完全卸载MySQL 数据库清空MySql注册表
  3. python2.7+opencv3.1人脸识别
  4. as上的git到码云操作_如何使用git从码云克隆项目到本地?
  5. 统计自然语言处理基础——学习摘要(1)
  6. Java中基本类型和引用类型(简单介绍)
  7. 解决IIS进程回收后第一次访问慢的问题
  8. MINIST数据集实践
  9. DHCP报文抓包分析
  10. 降压恒流 LED 驱动器
  11. [处理方法]微信内置浏览器 打开页面空白
  12. Apple Store教育优惠(161103)
  13. Time——信仰:梦在远方,路在脚下
  14. cubieboard mysql_【Linux】【笔记】Cubieboard开发板Debian系统+SAMBA共享+远程迅雷Xware+Nginx+PH......
  15. 乘风破浪潮头立,扬帆起航正当时——韩国5G商用情况解析
  16. 人体自身的神奇补肾法 ——你在外面花多少钱都学不到的转
  17. Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException
  18. 永磁同步直线电机仿真实例,仿真教学 maxwell16.0版本 12槽11极
  19. raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+‘; not sup
  20. 计算机用户被锁定如何解除,计算机被锁定怎样解除?用户受限又怎样解除?

热门文章

  1. 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
  2. 作业6--四则运算APP之Sprint计划
  3. Python算法(含源代码下载)
  4. 如何安装Windows操作系统(五)驱动安装
  5. 在Solaris 下使用Os Watcher 监控Oracle
  6. Scala中的match(模式匹配)
  7. Java Protected 解读
  8. Centos/Linux下如何查看网关地址/Gateway地址
  9. Django之Model操作
  10. [数据库]SQL Server 用户NT AUTHORITY\IUSR 登录失败