1、在Linux虚拟机的任意目录下,新建一个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函数测试给定变量或者值的类型:

lua在声明变量的时候,并不需要指定数据类型
– 声明字符串
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}
访问table:
直接从1访问print(arr[1])
print(map[‘name’])
print(map.name)
字符串拼接

local arr={"java","hello","world"}
local map={name="jack",age=21}
for index,value in ipairs(arr)do
print(index,value)
end
for key,value in pairs(map) do
print(key,value)
end

function 函数名( argument1, argument2…, argumentn)
– 函数体
return 返回值
end
例如:定义一个函数,用来打印数组
local function printArr(arr)
for i,val in ipairs(arr) do
print(val)
end
end
if(布尔表达式)
then
–[ 布尔表达式为 true 时执行该语句块 --]
else
–[ 布尔表达式为 false 时执行该语句块 --]
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 arr={"java","hello","world"}
local map={name="jack",age=21}
local function printArr(arr)
if (not arr) --nil表示false
then print("数组不能为空")
return nil
end
for i,val in ipairs(arr) do
print(val)
end
end
printArr(arr)