解释性语言的理解
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的内容还有很多 这里就先记录到这里