lua数据类型

Lua中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread、 table。
可以使用type函数测试给定变量或者值的类型,返回string类型

function func1()
end
print(type(true))
print(type(12))
print(type(func1))
print(type(nil))

> boolean
> number
> function
> nil
1. nil(空)
  1. nil 类型表示一种没有任何有效值,它只有一个值 nil;
  2. 给全局变量或者 table 表里的变量赋一个 nil 值,等同于把它们删掉;
  3. 一个变量只要赋了其他值,它就不可能是nil,无论是 false还是零。

2. boolean(布尔值)

注:nil类型为false,无论0还是1都为true。


3. number(双精度类型的实浮点数)

Lua 默认只有一种 number 类型 -- double(双精度)类型,无论整数或者小数都是number类型的。


4. string(字符串)
  • lua没有char类型,字符串由一对双引号或单引号来表示。
  • 可以用 2 个方括号 "[[字符块]]" 来表示"一块"字符串。
html = [[
<html>
<head></head>
<body>
    <a href="http://www.runoob.com/">菜鸟教程</a>
</body>
</html>]]
print(html)
  • 对一个数字字符串上进行算术操作时,Lua 会尝试将这个数字字符串转成一个数字;将两个数字进行连接会将其转成字符串处理,连接符: ..
> print("2" + 6)
8.0
> print("2" + "6")
8.0
> print("2 + 6")
2 + 6
> print("a" .. 'b')
ab
> print(157 .. 428)
157428

5. table(表)
  • table 的创建是通过"构造表达式"来完成
-- 创建一个空的 table
local tbl1 = {}
 
-- 直接初始表
local tbl2 = {"apple", "pear", "orange", "grape"}
  • Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字或者是字符串。
  • 不同于其他语言的数组把 0 作为数组的初始索引,在 Lua 里表的默认初始索引一般以 1 开始。
local tab1 = {"小明","小强",key1 = "banana",key2 = "apple"}
tab1[3] = "小东"
tab1["key3"] = "candy"

for key, val in pairs(tab1) do
    print(key.." "..val);
end

print(tab1[4])

打印结果:

1 小明
2 小强
3 小东
key1 banana
key3 candy
key2 apple
nil
  • table 不会固定长度大小,有新数据添加时 table 长度会自动增长,没初始的 table 都是 nil。

6. function(函数)
  • 在 Lua 中,函数是被看作是"第一类值(First-Class Value)",函数可以存在变量里
function f1()
    print("Hello!");
end
f2 = f1
f2()

> Hello!
  • function 可以以匿名函数(anonymous function)的方式通过参数传递
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(k,v) --匿名函数(没有声明的函数)
    return k.."="..v;
end
);

7. thread(线程)

线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。

8. userdata(自定义类型)

userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,783评论 0 38
  • Lua是一种比较自由的语言,Lua里面变量不要类型定义,只需要为变量赋值。 Lua中有8个基本类型分别为:nil、...
    _凉笙阅读 2,300评论 0 0
  • Lua是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。 Lua中...
    一川烟草i蓑衣阅读 567评论 0 0
  • Lua 数据类型 作者:杨梦鸽 校对:翟舒青 Lua是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存...
    木易林1阅读 885评论 0 0
  • 前几天,有个朋友找我咨询:作为一个新运营主管,怎么快速有效的开展工作? 简单介绍下背景: 他们是一款心理咨询的产品...
    紫竹阅读 406评论 0 5