Lua 语言
# Lua是一种轻量、小巧的脚本语言,用标准C语言编写并以源码形式开发。设计的摸底是为了嵌入到其他应用程序中,从而为应用程序提供灵活的拓展和定制功能。 # Lua安装
# 官网:https://www.lua.org
# 1.官网下载源码
wget https://www.lua.org/ftp/lua-5.4.3.tar.gz
# 2.编译安装
cd lua-5.4.3
make linux test
make install
# 3.如果test失败,需要安装
yum install -y readline-devel
# 4.验证是否安装成功
lua -v # lua的语法和C/c++语法非常相似
# 交互式启动lua。直接输入lua命令就进入了lua的交互命令行
# 可以直接输入print('hello world') # 脚本式。创建的文件必须以.lua为后缀
# 执行脚本:lua abc.lua
# 或者你可以直接指定执行脚本
#! /usr/local/bin/lue
# 以下语法都兼容
a=1
b=a+2 a=1;
b=a+2; a=1;b=a+2; a=1 b=a+2 # 单行注释
--print('hello world') # 多行注释
--[[
print('hello world')
--]] # 关键字:
and break do else
elseif end false for
function if in local
nil not or repeat
return then true until
while goto # 运算符
# 算数运算符:
+加 -减 *乘 /除 %取余 ^乘冥 -负号 # 关系运算符
10==10 true
10~=10 false 不等于
20>10 true
20<10 false
20>=10 true
20<=10 false # 逻辑运算符
and 逻辑与 A and B
or 逻辑或 A or B
not 逻辑非 取反 A=false
B=true
A and B false
A or B true # 其他运算符
.. 两点用来链接两个字符串:"hello ".."world" 输出:hello world
# 井号是医院运算符,返回字符串或者表的长度:#"hello" 输出:5 # 全局变量&局部变量
# 在lua语言中,全局变量无需声明即可使用。在默认情况下,变量总是认为是全局的,如果为提前赋值,默认为nil。
# 你想声明局部变量需要用到local关键字
# 如:
local a = 100; print(a) # lua数据类型
nil(空,无效值)
boolean(布尔,true/false)
number(数值)
string(字符串)
function(函数)
table(表)
thread(线程)
userdata(用户数据) # 你可以直接用type去查看
print(type(nil)) :string
print(type(true)) :boolean
print(type(1*1*1.1)) :number
print(type("hello world")) :string
print(type(io.stdin)) :userdata
print(type(print)) :function
print(type(type)) :function
print(type(type{})) :table
print(type(type{type(x)})) :string # 多行字符串的定义
html = [[
<html>
<title>
</title>
</html>
]] # table类型
# 使用例子:
a = {}
arr = {"TOM","JERRY"} :数组的访问arr[1],lou下标是从1开始
b = {}
b['x'] = 1
b['y'] = 2 :字典的访问:b['y'] arr = {"TOM",x=10,"Jerry",y=20}
# 如何获取上面的值
TOM:arr[1]
10:arr['x'] 或者 arr.x
Jerry:arr[3]
20:arr['y'] 或者 arr.y # function类型
# 声明函数
function f(a,b)
print(a,b)
end # 调用:
f() :nil nil
f(2) :2 nil
f(2,6) :2 6
f(2,6,8) :2,6
# 函数参数随便你怎么传
# 可变参数&返回值
function add(...)
a,b,c=...
return c,b,a
end
a,b,c=add(1,2,3) # if then elseif else控制语句
function testif(a)
if a>0 then
print("a是正数")
end
end function testif(a)
if a>0 then
print("a是正数")
else
print("a是负数")
end
end function testif(a)
if a<0 then
print("a是负数")
elseif a==0 then
print("a是0")
elseif a>=1 and a<=10 then
print("a是1到10之间")
else
print("else")
end
end # while循环
function testwhile()
local i = 1
while i<=10 do
print(i)
i=i+1
end
end # repeat循环 until条件满足才退出循环
function testrepeat()
local i=10
repeat
print(i)
i=i-1
until i < 1
end # for循环
for i=1,100,10 do
print(i)
end arr = {"Tom", "jerry", "Rows"}
for i,v in ipairs(arr) do
print(i,v)
end
# 输出,i是索引,v是值:
1 Tom
2 jerry
3 Rows arr = {"Tom", x="test", "jerry", "Rows"}
for i,v in pairs(arr) do
print(i,v)
end
# 输出,i是索引,v是值:
1 Tom
2 jerry
3 Rows
x test
Lua 语言的更多相关文章
- 用VC编译lua源码,生成lua语言的解释器和编译器
用VC编译lua源码,生成lua语言的解释器和编译器 1.去网址下载源码 http://www.lua.org/download.html 2.装一个VC++,我用的是VC6.0 3.接下来我们开始编 ...
- 51CTO专访淘宝清无:漫谈Nginx服务器与Lua语言
http://os.51cto.com/art/201112/307610.htm 说到Web服务器,也许你第一时间会想到Apache,也许你会想到Nginx.虽然说Apache依然是Web服务器的老 ...
- 【quick-cocos2d-x】Lua 语言基础
版权声明:本文为博主原创文章,转载请注明出处. 使用quick-x开发游戏有两年时间了,quick-x是cocos2d-Lua的一个豪华升级版的框架,使用Lua编程.相比于C++,lua的开发确实快速 ...
- lua语言入门之Sublime Text设置lua的Build System
转自: http://blog.csdn.net/wangbin_jxust/article/details/8911956 最近开始学习LUA语言,使用Sublime Text作为编辑器,不得不说, ...
- 编译并使用Lua语言
Lua是一个小巧的脚本语言,该语言设计的目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. 可扩展性.Lua的扩展性非常卓越,可以通过Lua代码或C代码扩展,很多功能可以通过外部库来扩 ...
- Lua语言在Wireshark中使用(转)
1. 检查Wireshark的版本是否支持Lua 打开Wireshark,点击“HelpàAbout Wireshark”菜单,查看弹出的对话框,如果有“with Lua 5.1”表示支持 ...
- Unity进阶----Lua语言知识点(2018/11/08)
国内开发: 敏捷开发: 集中精力加班堆出来第一个版本 基本没啥大的bug 国外开发: 1).需求分析: 2).讨论 3).分模块 4).框架 5).画UML图(类图class function)(e- ...
- lua语言自学知识点----Lua与.Net相互调用
知识点: LuaInterface作用是用来完成Lua与C#的相互调用. LuaInterface核心库:1.luainterface.dll 用于C#读取lua(放在bin目录同级) 2.luane ...
- lua 语言笔记
Lua语言基础汇总(1) -- 类型与值 基础介绍 Lua是一种动态类型的语言.在语言中没有类型定义的语法,每个值都带有其自身的类型信息.在Lua中有8种基本类型,分别是: nil(空)类型 bool ...
- lua语言三目运算符
[1]lua语言中完整的三目运算符 完整三目运算符形式:(a and {b} or {c})[1] [2]分析原因 大部分C或C++程序员经常会用到三目运算符(三元运算符),形如 a ? b : c; ...
随机推荐
- 编程语言与python与pycharm的下载
目录 编程语言的发展史 编程语言的分类 python解释器 python解释器的下载与安装 环境变量 执行python程序方式 pycharm编辑器 编程语言的发展史 机器语言是最开始的编程语言,之后 ...
- Flink整合面向用户的数据流SDKs/API(Flink关于弃用Dataset API的论述)
动机 Flink提供了三种主要的sdk/API来编写程序:Table API/SQL.DataStream API和DataSet API.我们认为这个API太多了,建议弃用DataSet API,而 ...
- Crontab在服务端进行设置定时执行任务
Crontab简crontab是一个可以根据时间.日期.月份.星期的组合调度对重复任务的执行的守护进程.也可以讲Linux crontab是用来定期执行程序的命令. 当安装完成操作系统之后,默认便会启 ...
- conda命令的使用,环境安装,创建环境以Anaconda为例
Anaconda用命令conda创建环境: 安装Anaconda后,用Conda –version查看conda的版本号: Conda create -n name python = x.xx Con ...
- 12.web基础与HTTP协议
web基础与HTTP协议 目录 web基础与HTTP协议 web基础 域名概述 HTML概述 HTML基本标签 HTML语法规则 HTML文件结构 头标签中常用标签 内容标签中常用标签 静态网页与动态 ...
- 你是否有一个梦想?用JavaScript[vue.js、react.js......]开发一款自定义配置视频播放器
前言沉寂了一周了,打算把这几天的结果呈现给大家.这几天抽空就一直在搞一个自定义视频播放器,为什么会有如此想法?是因为之前看一些学习视频网站时,看到它们做的视频播放器非常Nice!于是,就打算抽空开发一 ...
- WPF第三方控件,只能输入数字型数据
话不多说,根据最近项目需求,为了减少输入验证等相关代码量,需要此控件 先上效果图 默认样式是这样,自己可以根据需求修改外形,但我更喜欢它自带的简洁版 有人可能会问怎么实现的呢?其实很简单,我们设置它的 ...
- UiPath官方视频Level1
[UiPath官方视频Level1]第一课-UiPath简介https://www.bilibili.com/video/BV1zJ41187vB [UiPath官方视频Level1]第二课-变量和数 ...
- 不同network中的两个docker容器
1. 创建docker网络 docker network create --subnet 172.18.0.1/16 test docker network ls 2. 创建两个容器指定docker ...
- 游戏启动后提示安装HMS Core,点击取消,未再次提示安装HMS Core(初始化失败返回907135003)
问题描述 我们国内的华为联运游戏集成华为游戏服务SDK 之后,被审核驳回:在未安装或需要更新华为移动服务(HMS Core)的手机上,提示安装华为移动服务,点击取消,未再次提示安装HMS Core. ...