4.2 Lua语法入门
一、初始Lua
Lua是轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能,官网:http://www.lua.org/
安装(Mac)
curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz tar zxf lua-5.3.4.tar.gz cd lua-5.3.4 make macosx test sudo make install备注:可以使用lua -v查看是否安装完成
进入lua的命令行方式:直接输入lua回车
入门:
新建文件:hello.lua
编辑文件:
pring("hello world")运行
lua hello.lua备注:在文件目录,看控制台输出
二、变量和循环
数据类型
数据类型描述nil
这个最简单,只有值nil属于该类,标识一个无效值(在条件表达式中相当于false)
boolean
包含两个值:true和false
number
表示双精度类型的实浮点数
string
字符串,由一对双引号或单引号来表示
function
由C或Lua编写的函数
table
Lua中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字、字符串或表类型。在Lua里,table的创建是通过"构造表达式"来完成,最简单的构造语法是{},用来创建一个空表
可以使用type函数测试给定变量或值的类型
type("hello") type(10*3)声明变量
-- 声明字符串 local str = 'hello' -- 声明数字 local num = 21 -- 声明布尔类型 local flag = true -- 声明数组,以key为索引的table local arr = {'java', 'python', 'lua'} -- 声明table,类似java的map local map = {name='Jack', age=21}备注:字符串的拼接方式:
local str1 = str .. 'world'用..来拼接访问table中的元素
-- 访问数组,lua数组的角标从1开始 pring(arr[1]) -- 访问table pring(map['name']) pring(map.name)循环:数组、table都可以利用for循环来遍历
local arr = {'java', 'python', 'lua'} local map = {name='Jack', age=21} -- 遍历数组 for index, value in ipairs(arr) do print(index, value) end -- 遍历table for index, value in pairs(map) do print(index, value) end解释:
do:循环开始
end:循环结束
ipairs:解析数组,解析成键值对,使用index接收角标,value接收值
pairs:解析map,解析成键值对,使用index接收键,value接收值
三、条件控制、函数
函数定义语法
function 函数名(参数1,参数2,参数3...) -- 函数体 return 返回值 end举例:打印数组的函数
function printArr(arr) for index, value in ipairs(arr) do print(index, value) end end条件控制语法
if(布尔表达式) then -- 布尔表达式为true时执行该语句块 else -- 布尔表达式为false时执行该语句块 end与Java不同,lua布尔表达式中逻辑运算用的不是符号,而是英文单词
操作符描述示例and
逻辑与操作符
(A and B)
or
逻辑或运算
(A or B)
not
逻辑非操作符
not(A and B)
最后更新于
这有帮助吗?