lua学习笔记 - 数据类型

Posted usp10

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 变量中调用。

以上是关于lua学习笔记 - 数据类型的主要内容,如果未能解决你的问题,请参考以下文章

Lua学习笔记1,基本数据类型

lua学习笔记

lua学习笔记

lua源码笔记-基本数据结构

Lua学习笔记 —— 风格

lua 学习笔记一