lua学习笔记 - 数据类型
nil 空类型
boolean true或false
if nid 为false
number 双精度类型的浮点数
print "2" = 2 print ("2"+2) = 4 print ("2"+"3") = 5 print ("2 + 3") = "2 + 3"
string 字符串
注释 --[[ dfsdkljfjsdlf sdfsjklf --]] 一块字符串,可换行 str = [[ def func(): pass ]] print("a".."b") = "ab" print(157+22) = 15722 print(#"haha") = 4 计算字符串长度
function c或者lua写的函数
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)) 120 120
--[[ 匿名函数 --]] function test1(tab, fun) print(tab..fun(tab)) end test1("haha", function(tb) tb = tb.."22" return tb end) hahahaha22
table(表)
a = {"ww", "ff", "dd"} a[1] = "haha" a["xz"] = "ldb" for k,v in pairs(a) do print(k..":"..v) end --[[ 输出 1:haha 2:ff 3:dd xz:ldb 不是从0开始 --]]
a3 = {}
for i = 1, 10 do
a3[i] = i
end
a3["key"] = "val"
print(a3["key"])
print(a3["none"])
脚本执行结果为:
val
nil
thread
在 Lua 里,最主要的线程是协同程序(coroutine)。它跟线程(thread)差不多,拥有自己独立的栈、局部变量和指令指针,可以跟其他协同程序共享全局变量和其他大部分东西。
线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。
userdata 自定义类型
userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。