Lua学习笔记2-数据类型
来源:互联网 发布:名校毕业生知乎 编辑:程序博客网 时间:2024/06/04 17:54
1.nil
nil表示一种没有任何有效值,属于的类型也是nil。
nil对于全局变量和table有一个“删除”的作用,将全局变量或者table表里的变量赋值nil就会将它删除:
table = {key1 = "val1", key2 = "val2"}print("删除前:")for k, v in pairs(table) doprint(k .. ":" .. v)endtable["key1"] = nilprint("删除后:")for k, v in pairs(table) doprint(k .. ":" .. v)end
结果:
删除前:key1:val1key2:val2删除后:key2:val2
2.boolean
boolean类型只有两个值:true和false,在Lua中nil和false会视为“假”,其他都会视为“真”。
if false or nil thenprint("false和nil中有一个真")elseprint("两个都为假")end结果:
两个都为假
3.number
其他语言中的int、float等类型到Lua中都统一视为number。
并且一下的写法都视为number:
print(12 + 1)print("12" + 1)print("12" + "1")结果
1313.013.0
用+连接的两字符串会被强制转换为number型,如果不能转换则会报错。
4.string
字符串,由单引号或者双引号来表示。
同时也可以使用“[[]]”来表示。
poetry = [[床前明月光,疑是地上霜。举头望明月,低头思故乡。]]print(poetry)在[[]]里的字符串想换行可以直接使用回车键,而不使用\n,但用单、双引号表示的字符串只能用\n表示换行。
多个string字符串希望连接使用的是..,如:
>print("Hello" .. "World")HelloWorld使用#来计算字符串的长度。
>print(#"Hello")5
5.table
table的创建是通过“构造表达式”来完成,最简单的的构造表达式是{},表示创造了一个空表。
table的索引可以是字符串,同时也可以是数字。
table = {}table["key1"] = "val1"table[10] = "val2"for k, v in pairs(table) doprint(k .. ":" .. v)end结果
key1:val110:val2table的初始索引是从1开始的。
6.function
函数是被看作是“第一类值”,函数可以存在变量中:
function Sum(a, b)return a + bendprint(Sum(1, 2))Sum2 = Sumprint(Sum2(2, 3))结果
35function可以以匿名函数的方式作为参数传递:
function Avg(tab, Count)local sum = 0for val in pairs(tab) dosum = sum + valendreturn sum / Count(tab)endtable = {1, 2, 3, 4, 5, 6, 7, 8}print("平均数为:" .. Avg(table, function (tab)local count = 0for i in pairs(tab) do count = count + 1endreturn countend))
7.thread
在 Lua 里,最主要的线程是协同程序(coroutine)。它跟线程(thread)差不多,拥有自己独立的栈、局部变量和指令指针,可以跟其他协同程序共享全局变量和其他大部分东西。
线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。
8.userdata
userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。
阅读全文
0 0
- Lua学习笔记2-数据类型
- Lua学习笔记之数据类型
- Lua学习笔记之数据类型
- [LUA学习笔记04]Lua语法--数据类型
- lua学习笔记(2)
- lua学习笔记2
- Lua学习笔记-2
- lua学习笔记2
- Lua数据类型学习
- Lua学习笔记(一) —— 数据类型
- Lua学习笔记二 数据类型及字符串操作
- lua学习笔记_注释、基本数据类型、if语句
- lua学习笔记一 -- 基本数据类型和操作符介绍
- Lua学习笔记(2): 协程
- Lua学习笔记2:变量
- lua学习之旅2--学习笔记
- cpp学习笔记 2数据类型
- Java 学习笔记(2) -- 数据类型
- 2017 ACM-ICPC西安赛区网络赛 Barty's Computer【哈希】
- 转载:公钥、私钥、USBKey、CSP、数字证书和CryptoAPI的简介
- Win10 成功安装VC++6.0企业版及SP6补丁包
- UML设计中的箭头详解
- 字符串补字符工具类
- Lua学习笔记2-数据类型
- js验证开始时间和结束时间 结束时间不能比开始时间早
- iview框架中文本类型的数据导出excel后以科学记数法显示的解决办法
- 在服务器上安装swoole
- 【互联网安全】DDoS攻防原理及实战
- xamarin -- 跨平台开发,思路不错,开发效率挺高的
- 使用metasploit(MSF)对windows的ms08-067漏洞进行利用的过程
- String类常用的成员方法compareTo()
- Java学习笔记之IO(十一):装饰者设计模式