Lua学习篇③——数据类型
虽说是动态类型,Lua也有8个基本的类型分别为:nil、boolean、number、string、userdata、function、thread和table。
数据类型 | 描述 |
nil | 一个无效值,其类型只包含nil |
boolean | true或者false |
number | 双精度类型的实浮点数 |
string | 字符串类型 |
function | 函数类型 |
userdata | 存储在变量中的数据结构类型 |
thread | 线程类型 |
table | 表类型 |
nil
nil表示一个无效值、空值,类似C#语言中的null,所有未赋值的变量输出都为nil。
由于nil代表空值,我们可以用它来实现删除功能。给全局变量或table表里的变量赋值为nil,相当于把这个变量删除了,大家可以自己编写代码测试一下。
boolean
boolean类型就等同于布尔(bool)类型,其值只有两个:true(真)和false(假)。在Lua中,除了false和nil为“假”之外,其余的所有变量都为“真”。
如上脚本,其输出为:
number
Lua对number的定义为双精度类型的实浮点数,即所有Double类型的数字。
string
字符串类型,Lua中没有字符(char)的类型,所有一串字符串可以由一对双引号或单引号来表示,如果字符串分了好几行,我们还可以使用"[[ ]] "来将其包起来。
对于字符串的具体用法和操作我将在后面的博客中详细的介绍~
table
Lua中的table是我最喜欢的一个类型,和其他语言对表的创建一样,table的构造表达式由{}加上一些数据组成,一个最简单的构造表达式为{},也意味着创建一个空表。
table最大的特点在于其类似字典的key-value特性,即为一个关联数组。数组的默认索引以数字1开始,我们也可以自己为table中的值赋上索引,可以为字符串或数字。
table的长度会自动增加,所以在定义时也无需我们定义好长度。
如上代码,其输出为
function
function在Lua中为函数的意思,我们在定义一个函数时,只需以function加上函数名和形参,并以end结尾即可。函数的类型以及是否有返回值都是不需要定义的,只是我们自己得清楚这个函数具体会做些什么。
Lua中的函数还可以当做参数来传递,想想看在C#中我们还得通过委托才能实现这一功能,所以Lua脚本的编写是十分便捷的~
如上代码,其输出为打印出tab表的索引和内容:
thread
thread线程应用于一系列可并行执行的任务中,旨在节省时间,提高效率。学过爬虫程序的人就非常清楚线程的重要性。在Lua中,最主要的线程名为协同程序。
userdata
userdata是一种用户自定义数据
Lua学习篇③——数据类型相关推荐
- 【lua学习】2.数据类型
[lua学习]2.数据类型 Lua中的数据类型 关于TValue自顶向下分析 TValue表示所有的Lua数据结构并带一个类型字段 Value表示所有的Lua数据结构 GCObject表示所有需要进行 ...
- lua学习之类型与值篇
类型与值 lua 是动态类型的语言 在语言中没有类型定义的语法 每个值都携带有它的类型信息 8种基础类型 用 type 可以返回这个值的类型的名称 将一个变量用于不同类型,通常会导致混乱的代码 但合理 ...
- 从Lua学习JavaScript(一)
学习 Lua 对于了解 Javascript 的人来说就是小菜一碟,Tyler Neylon 写了三篇文章来解释其中的原因,这是其中的第一篇. 这是通过 Javascript 来学习 Lua 系列文章 ...
- Lua语言基础入门 (Lua学习一)
Lua语言快速入门 这篇博客主要是简单的讲解一下Lua的基础知识,涉及的东西不是很深,提供一些学习的思路,对具体的技术不展开介绍,网上资料很多写的都比我好,仅仅为了使用Lua,而不是做基于Lua的项目 ...
- Lua学习笔记6:C++和Lua的相互调用
曾经一直用C++写代码.话说近期刚换工作.项目组中的是cocos2dx-lua,各种被虐的非常慘啊有木有. 新建cocos2dx-lua项目.打开class能够发现,事实上就是C++项目啦,只是为什么 ...
- python-基础学习篇(一)
python基础学习(一) 不积硅步,无以至千里.基础的学习越加透彻,才能更清楚的理解和分析需求,我贯彻基础学习"永无止境"的理念,故把自学的知识梳理在博客中,基础学习篇无限更新. ...
- c语言初学知识点,C语言学习关于数据类型的一些知识点(初学者)
1.整型常量的的前缀:(1)十进制常数无前缀. (2)八进制常数前缀为0,八进制常数无符号. (3)十六进制常数前缀为0X或0x. 注:在程序中是根据前缀来区分各种进制数的.因此在书写常数时不要把前缀 ...
- mysql的char在java中表示为_Java学习篇之-Mysql中varchar门类总结_mysql
java学习篇之---mysql中varchar类型总结 Mysql中varchar类型总结 今天新做一个项目,需要自己进行数据库设计,发现自己对varchar的用法还不是很熟悉,所以查阅资料总结若下 ...
- c 语言程序编辑,C语言程序编辑学习篇—编程者说之C语言
谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是"让我欢喜让我忧."欢喜的是,C语言功能非常强大.应用广泛,一旦掌握了后,你就可以理直气壮地对他人说"我是电脑高手 ...
最新文章
- Http环境下的保持连接方式
- hibernate4调用mysql存储过程_hibernate调用存储过程
- java循环1000000000_Java11比Java8快多少,不是测试人员一眼也能看懂
- 2021华为软挑赛题_思路分析——实时更新,做多少更多少(六)
- yum -y --downloadonly --downloaddir=/root/ruiy update
- 【Derivation】 条件数学期望公式泊松分布推导(Poisson distribution)
- bugly怎么读_Bugly迁入
- HTML中怎么改变一条线的粗细
- AC695X_FCCBQB认证资料获取[杰理全系列]
- Vulnhub--bulldog
- 热身赛T3(奖学金评定)
- 在K8s上部署Redis 集群
- vue中v-for写在template上,不能加key怎么办
- (转载)纳豆的家庭制作、保存和食用
- java并发编程源码世界大师_求咕泡学院Java架构师第三期的完整版资料源码+视频,注(完整无解压密码)...
- 自动文摘评测方法:Rouge-L、Rouge-N
- 织梦 plus/download.php,织梦/plus/download.php url重定向漏洞的解决方法
- 特斯拉称正调查上海停车场特斯拉车辆自燃事故
- 使用光纤网络安装监控摄像头的6套方案
- [AWT] GridLayout
热门文章
- softmax的从零开始实现
- dell inspiron 只有一个飞行模式 没有wifi_连上WiFi就能打电话?“手机营业厅”中的神奇功能火了...
- Linux基础加实际操作演示
- React爬坑之路二:Router+Redux
- 实验三 类与对象(zxt)
- Non-UTF-8 code starting with ‘\xb5‘ in file D:\eclipse\Python\test\__init__.
- 7.3 数字化的资产管理
- 【办公软件有哪些】万彩办公大师教程丨PDF页面编辑
- 二十九、K8s最小服务漏洞3-gVisor沙箱
- MongoDB笔记之简单的增删改查