基本语法
注释规则:
单行注释:两个减号是单行注释 --
多行注释:--[[
a=10
b=20
--]]
命名规则:
Lua的命名规则与C语言一致,标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9),不可以数字开头,也不可使用特殊字符如@,$和%等等。
关键词:
and break do else elseif end false for function if in local nil not or repeat return then true until while
全局变量:
在默认情况下,变量总是认为是全局的,除非用local显式声明;访问一个没有声明的全局变量不会出错,但得到的结果是nil;删除一个全局变量只需要将变量赋值为nil即可。
数据类型
nil:无效值,条件表达式中相当于false
boolean:true和false
number:表示双精度浮点型,相当于double
string:字符串,用单引号或双引号括起来
function:有Lua或C编写的函数
userdata:表示任意存储在变量中的C数据结构
thread:表示执行的独立线路,用于执行协同程序
table:可用做数组,其中数据索引可以是数字也可以是字符串,以数字作为索引时,下标从1开始
代码示例:
--type函数可以获得Lua的数据类型 ..代表字符串连接符
print("数据类型:"..type("Hello"))
print("数据类型:"..type('World'))
print("数据类型:"..type(2.5))
print("数据类型:"..type(print))
print("数据类型:"..type(true))
print("数据类型:"..type(nil))
print("数据类型:"..type({hello,world}))
--双综括号可表示字符块
html=[[
<html>
<head></head>
<body>
<a href="http://www.baidu.com/">百度首页</a>
</body>
</html>
]]
print(html)
--#号可计算字符串长度
print(#"HelloWorld")
--字符串在进行算术操作时,会自动将字符串转化成数字
print("2"+'6')
print("2"*6)
--..连接符
print("Hello"..'World')
print(123 .. 456)
--table表
--创建一个空表
tab1={}
--创建并初始化表
tab2={1,2,3,4,5}
--给表赋值<索引可以为数字和字符串,默认以数字为索引值且第一个索引为1>
tab1[1]=10
tab1["key"]="value"
--遍历tab1和tab2
print("tab1")
for k,v in pairs(tab1)
do
print(k..":"..v)
end
print("tab2")
for k,v in pairs(tab2)
do
print(k..":"..v)
end
--function函数
function fun(n)
if n==0
then
return 1
else
return n*fun(n-1)
end
end
print(fun(5))
fun1=fun
print(fun(6))
--匿名函数
function test(tab,fun)
for k,v in pairs(tab)
do
print(fun(k,v))
end
end
test(tab2,function(key,value)
print(key.." = "..value)
end)