Lua函数
1.可以将函数作为参数传递给其他函数,感觉像C#的回调一样
myprint = function(param)
print("这是打印函数 - ##",param,"##")
end
function add(num1,num2,functionPrint)
result = num1 + num2
-- 调用传递的函数参数
functionPrint(result)
end
myprint(10)
-- myprint 函数作为参数传递
add(2,5,myprint)
2.Lua函数可以返回多个返回值
3.可以接受可变数目的参数,function funcName(...) (...)表示可变数目的参数,感觉像C#的params一样,需要放在固定参数的后面;通过select("#",...)获取可变参数的数目
4.Lua函数有个便利的语法:
Test = {jun = 0}
function Test.withdraw(self,v)
self.jun = self.jun - v
end
--下面是代码的调用:
a = Test
a.withdraw(a,10)
用来隐藏self参数
function Test:withdraw(v)
self.jun = self.jun - v
end
a = Test
a:withdraw(10)
Lua运算符
1.不等于: ~= C#的不等于 !=
2.逻辑与,或,非:and or not
3.连接字符串: .. ‘hello’..‘world’ 返回 helloworld
4.#:返回字符串或表的长度,但是返回表的长度时不一定返回的是表里数据的总数(我也不清楚)
Lua字符串
1.字符串格式:“ ”,‘ ’,[[ ]]
Lua数组
我梁说Lua实际上没有数组,本质是个表,我还不太明白
1.Lua数组的索引值是从1开始的,可以指定为0
2.没有固定长度,可以根据需要扩容
Lua迭代器
看不懂,先放着
Lua表
1.创建空表 mytable = {}
2.可以用任何类型的值作为索引,除了nil
3.可以充当字典,数组,环境,模块,对象,类
4._G 全局变量:lua最初创建的全局环境,保存着所有的全局变量,可以通过_G[变量名]存取值
5.创建非空表:e.g. local a = {["x"] = 12, ["mutou"] = 99, [3] = "hello"} 或者 local a =
{x = 12, mutou = 99, [3] = "hello"}
6.对于字符串下标,我们可以省略方框和双引号,但是数字下标不可以
7.调用方式:a["x"] 或者 a.x(字符串专用)
我是没见过函数也能当数组下标的。。