基本数据类型
Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。
Lua 中有 8 个基本类型分别为:nil(空值,相当于null)、boolean、number(双精度double类型)、string、userdata(表示任意存储在变量中的C数据结构,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用)、function、thread 和 table(注意这个索引下标从 1 开始)。
nil:
有删除的作用,将一个变量赋值为nil的时候,相当于将这个变量进行了一个删除操作,另外nil进行比较操作的时候需要加上双引号。
如:
x=nil
type(x)nil (返回false)
type(x)“nil”(返回true)
string:
用单引号或者双引号表示
如:
string1 = “this is string1”
string2 = ‘this is string2’
同样也可以用 [[]]表示一大段的文字
字符串之间的连接用“. .”表示,数字字符之间进行算数操作的时候,会把字符串自动转化成数字类型进行计算
print(“2” + 6)
8.0
print(“2” + “6”)
8.0
print(“2 + 6”)
2 + 6
print("-2e2" * “6”)
-1200.0
可以使用#来计算字符串的长度
len = “www.runoob.com”
print(#len)
14
print(#“www.runoob.com”)
14
table:
– 创建一个空的 table
local tbl1 = {}
– 直接初始表(此时的表下标从 1 开始)
local tbl2 = {“apple”, “pear”, “orange”, “grape”}
使用类似字典键值对的方式来操作表:
a = {}
a[“key”] = “value”
key = 10
a[key] = 22
a[key] = a[key] + 11
for k, v in pairs(a) do
print(k … " : " … v)
end
function:
function在lua里面可以当做一个变量来使用,即可以进行函数之间的赋值,可以将函数当做一个变量传入另一个函数,也可以直接使用匿名函数来进行使用。总的来讲感觉就像是把unity里面的委托直接就当做了一种常规用法,不用再使用委托来进行相关操作。
如:
function factorial1(n)
if n == 0 then
return 1
else
return n * factorial1(n - 1)
end
end
print(factorial1(5))
factorial2 = factorial1
print(factorial2(5))
匿名函数和函数作为变量来传递:
function testFun(tab,fun)
for k ,v in pairs(tab) do
print(fun(k,v));
end
end
tab={key1=“val1”,key2=“val2”};
testFun(tab,
function(key,val)–匿名函数
return key…"="…val;
end
);
以上实例都来自 菜鸟教程