lua是一种脚本语言, 轻量级.
lua: cocos-2dx
– lua作为后端 纯粹的lua语言
– lua 用于热更新(unity里面直接做) 修改脚本
– 给全局变量或者 table 表里的变量赋一个 nil 值 删除之
– “2” + 6 在C#里面是字符串+字符串(数字)
– 在Lua里面是数字(string) + 数字 --> 数字
在函数外部定义全局变量在函数内部再次定义同名称的全局变量会覆盖函数外部的
若进行变量的定义 想清楚使用哪种
C#最多使用的是local
lua 若有局部变量就使用局部的
在变量使用前必须赋初值
在返回值的过程中遵循解构赋值, 多少都不会error
Tab ={A:"",C:"{EE:"",AA:"[1,2,3,4]"}",B:""}
tab[C][AA][3]
while do while for foreach
for循环里面步长不会动态改变
for i = 5, f(5),3 do
i = i +100
print(“aaaa”)
end
不管啥语言, 只要方法名称进行参数传递的都是理解为委托
注释 --[[ --]]多语句注释
数据类型
变量名必须以字母或者下划线开头,区分大小写.
nil (空类型)
boolean (逻辑型) true false
number(数值型) 双精度浮点数
string (字符串型)
function (函数)
userdata (自定义型)
thread (线程)
table (表) { }
局部变量 local修饰符
– 变量: 可以被修改的量是变量
– 常量: 不能被修改的量是常量
– 命名规则还是依据C#
– 因为lua没有常量的概念,沿用python语法规则 假常量 NUMBER
– USERNAME = “zhangsan” 假常量可以被修改
function num ()
local i = 1 --局部变量,只在本函数中有效
j = 2 --全局变量
end
比较运算符 ~= 不等于
关系运算符
和 and 同真的真 &&
或 or 存真得真 ||
非 not 取反 not nil=true
连接 ..
函数
function 函数名 (参数)
内容
end
例
function TestLocal( )
local i = 250
print( "i in TestLocal" )
return i ,50, 120
end
number01, number02 = TestLocal()
print( number01,number02 )
function trade ( i)
print (i)
end
do
local gp = " 休息休息休息休息"
trade(gp) --调用传参
end
return
function hs (a,b)
X=a*a
y=b*b
return X ,y
end
i =10
j=11
num1,num2=has(i,j)
print (num1.."和"..num2)
end
表
array = { }
for循环例
function f(x)
print("function")
return x*2
end
for i = 1, f(5),3 do
i = i +100
print(i)
end
输出为101,104,107,110.即i=1时执行循环,i=4时执行循环,i=7时,i=10时的结果.
遍历表
days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}
--相当于foreach
for i,v in ipairs(days) do
print(i)
print(days[i])
end
for嵌套实现99乘法表
for i = 1, 9 do--行
for j = 1, 9 do--列
if( i >= j)
then
io.write( j.."*"..i.."="..i*j.." " )--不换行
end
end
print("\n")--换行
end
委托
function Demo01(number)
print( type( number ) ) -- body
end
--委托
function Demo02(number01,number02,demo01Func )
demo01Func(number01)
demo01Func(number02)
end
Demo02("AAAA",10,Demo01)
可变参数
function Demo01(number)
print( type( number ) ) -- body
end
--可以变长的参数+委托
function Demo02(demo01Func ,...)
for i,v in ipairs{...} do
demo01Func(v)
end
end
-- Demo02(Demo01,"AAAA",10,false,"aaaaaa","hahaha")
Demo02(Demo01,"11111",11,"4154",'a')