初出茅庐的小李第69篇博客之Lua学习笔记第5篇(Lua数据类型)

解释性语言的理解

lua属于一种解释性语言有很多参数可选 开始学习可以先忽略这些知识对lua有一定的了解后可以再来研究。

lua数据类型

Lua 中包含 8 种基本数据类型,
即:nil、boolean、number、string、userdata、function、thread 和 table
数据类型的理解

  • – nil 表示无效值,在条件表达式中表示 false。
  • – boolean 布尔值,包含 true 和 false 两个值。
  • – number 表示双精度类型的实浮点数。
  • – string 表示字符串,通过双引号或单引号括住。
  • – userdata 表示任意存储在变量中的 C 数据结构
  • – function 表示 C 或 Lua 编写的函数
  • – thread 表示执行的独立线程,用于执行协同程序。
  • – table 表示一个关联数组,数组索引可以是数字或字符串。

lua变量的作用范围

  • 全局变量
  • 局部变量

全局变量不需要声明 只需要给其赋值就可以如果删除这个全局变量就利用赋值语句给它赋值nil
在这里插入图片描述
如果直接打印一个没有赋值的变量会输出nil
局部变量 前面加修饰词 local 利用局部变量来写程序是一个比较好的习惯

数据类型测试函数type()

我们可以在交互模式下测试八种数据类型

在交互模式我们可以用一个等号来代替print

在这里插入图片描述

测试代码

在这里插入图片描述
在这里插入图片描述
根据测试结果我们可以看出“hello”是一个string类型
10.4*3是一个number类型
print是一个函数类型
ture 和 false的类型都是nil
type()函数的返回值类型是string type(x)返回的结果是nil

在这里插入图片描述
在这里插入图片描述

true不是ture 他的类型是boolean

对于没有定义的变量系统认为它的值就是nil

print(type(a))
a = 10
print(type(a))
a = "a string!!"
print(type(a))
a = print --可以这样赋值函数
a(type(a))--等价于print(type(print))
print(type(print))

在这里插入图片描述
不同类型的意义
在这里插入图片描述
我们可以巧妙利用类型来使自己的程序更完善

深入理解nil

它代表空就相当于汉字里的 无
给一个有值的变量赋值nil可以让其消失

深入理解boolern

尤其要注意的是lua中只规定了false 和 nil 为假
除此之外都为真 甚至number 0都是真因为它不是false 和 nil的任意一个
这里空字符串也是真

深入理解number

lua的number是浮点数没有四舍五入的运算
没有整形变量只有看起来像是整形变量的变量
在这里插入图片描述

深入理解string

lua的字符串表示一个字符序列 它可以将任意一个二进制数据存储到字符串中
但是它并不能向C语言直接改变一个字符串的内容而是需要用字符串操作函数来实现
这里有个例子

a = "one string"
b = string.gsub(a,"one","another")
print(a)
print(b)

在这里插入图片描述
关于string的函数有很多 这里就先使用这个看看效果
其实string对于lua来说是很简单的可以很容易实现拼接查找等很多其它语言不容易实现起来的操作。
lua 也支持转义字符

接下里我们可以写个lua文件测试一下

a = "one string"
b = string.gsub(a,"one","another")
print(a)
print(b)

print("响铃\a")
print("A B C!退格\b")
print("提供表格\f")
print("第一行\n第二行")
print("第一行回车\r换行\n第二行")
print("水平制表\t水平制表\t")
print("垂直制表\v垂直制表\v")
print("反斜杠\\")
print("单引号\'")

在这里插入图片描述
有关string的内容还有很多 这里就先记录到这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值