lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。官网:https://www.lua.org/
1.在Linux虚拟机的任意目录下,新建一个hello.lua文件
touch hello.lua
2.添加下面的内容
单引号也可以,双引号也可以
print("Hello World!")
3.运行
lua hello.lua
数据类型 | 描述 |
---|---|
nil | 这个最简单,只有值nil属于该类,表示一个无效值(再条件表达式张相当于false) |
boolean | 包含两个值:false和true |
number | 表示双精度类型的实浮点数 |
string | 字符串由一对双引号或单引号来表示 |
function | 由C或Lua编写的函数 |
table | Lua中的表(table)其实的一个“关联数组”(associative arrays),数组的索引可以是数字、字符串或表类型。在Lua里,table的创建是通过“构造表达式”来完成,最简单构造表达式是{},用来创建一个空表。 |
可以利用type函数测试给变量或者值的类型:
print(type("Hello world"))
String
print(type(10.4*3))
number
Lua声明变量的时候,并不需要指定数据类型:
local是局部变量的意思,可以不写local,那就是全局变量
-- 声明字符串(字符产拼接是用..)
local str = 'hello' .. 'world'
-- 声明数字
local num = 21
-- 声明布尔类型
local flag = true
-- 声明数组 key为索引的table
local arr = {'java','python','lua'}
-- 声明table,类似java的map
local map = {name='Jack',age=21}
访问table:
-- 访问数组,lua数组的角标从1开始
print(arr[1])
-- 访问table
print(map['name'])
print(map.name)
数组、table都可以利用for循环来遍历:
-- 声明数组 key为索引的 table
local arr = {'java','python','lua'}
-- 遍历数组
for index,value in ipairs(arr) do
print(index, value)
end
-- 声明map,也就是table
local map = {name='Jack',age=21}
-- 遍历table
for key,value in pairs(map) do
print(key,value)
end
定义函数的语法
function 函数名(argument1,argument2,argument3)
-- 函数体
return 返回值
end
例如,定义一个函数,用来打印数组:
function printArr(arr)
for index,value in ipaird(arr) do
print(value)
end
end
类似Java的条件控制,例如if、else语法:
if(布尔表达式)
then
-- [布尔表达式 true 时执行该语句块 --]
else
-- [布尔表达式 true 时执行该语句块 --]
end
与java不同,布尔表法式中的逻辑运算是基于英语单词:
操作符 | 描述 | 实例 |
---|---|---|
and | 逻辑与操作符。若A为false,则返回A,否则返回B。 | (A and B)为false。 |
or | 逻辑或操作符。若A为true,则返回A,否则返回B。 | (A or B)为true。 |
not | 逻辑非操作符。与逻辑运算结果相反,如果条件为true,逻辑非为false | not(A and B )为true。 |
需求:自定义一个函数,可以打印table,当参数为nil时,打印错误信息
local function printArr(arr)
if(not arr) then
print('数组不能为空!')
return nil
end
for i,val in ipairs(arr) do
print(val)
end
end
local arr2 = {100, 200, 300}
printArr(arr2)
printArr(nil)
vi hello.lua
lua hello.lua
100
200
300
数组不能为空!