天天看点

lua简单入门 Lua中的数据类型流程控制函数表模块

Lua中的数据类型

nil

这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于

false)。

boolean

包含两个值:false和true。

number

表示双精度类型的实浮点数

string

字符串由一对双引号或单引号来表示

function

由 C 或 Lua 编写的函数

userdata

表示任意存储在变量中的C数据结构

thread

表示执行的独立线路,用于执行协同程序

table

Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可

以是数字、字符串或表类型。在 Lua 里,table 的创建是通过"构造表达式"来完成,

最简单构造表达式是{},用来创建一个空表。

流程控制

if语句

if(布尔表达式) 
then
--[ 在布尔表达式为 true 时执行的语句 --] 
end      

if..else语句

if(布尔表达式) 
then
--[ 布尔表达式为 true 时执行该语句块 --] 
else
--[ 布尔表达式为 false 时执行该语句块 --] 
end      

while循环

while(condition) 
do 
statements 
end      

for循环

for var=exp1,exp2,exp3 
do 
<执行体> 
end      

repeat...until语句

repeat 
statements
until( condition )      

函数

--[[ 函数返回两个值的最大值 --]] 
function max(num1, num2)
if (num1 > num2) 
then 
result = num1; 
else
result = num2; 
end 
return result; 
end 
-- 调用函数 ..:表示拼接
print("两值比较最大值为 ",max(10,4)) 
print("两值比较最大值为 ",max(5,6))      

-- 初始化表 
mytable = {} 
-- 指定值
mytable[1]= "Lua" 
-- 移除引用 
mytable = nil      

模块

模块定义

-- 文件名为 module.lua 
-- 定义一个名为 module 的模块 
module = {} 
-- 定义一个常量
module.constant = "这是一个常量"
-- 定义一个函数 
function module.func1() 
print("这是一个公有函数") 
end local function 
func2() 
print("这是一个私有函数!") 
end 
function 
module.func3() 
func2()
end 
return module      

require 函数

require("<模块名>")
require "<模块名>"      
-- test_module.lua 文件 
-- module 模块为上文提到到 module.lua 
require("module") 
print(module.constant) 
module.func3()