文章目录
一、前言
哈喽大家好,我是 FEZ98 ,好久没与大家见面了。之前计划好了每周写一篇文章进行记录每周的学习成果,结果计划赶不上变化(其实是懒)。好了废话少说,这个系列是我系统学习Lua语言的学习笔记,我会把遇到的一些比较值得记录与关注的知识写在里面,供自己以后进行回顾。
二、Lua 与热更新
至于为什么要使用热更新与 Lua 框架的使用,因为有大佬博客写得比较详细了,我这里就直接给出文章链接地址了,强烈推荐大家读一下。
三、Lua 环境安装
Window 系统上安装 Lua,可以使用一个叫 “SciTE” 的 IDE 环境来执行 lua 程序,下载地址为:
之后一直点击下一步进行没有什么值得特别注意的地方。
安装完之后,我们打开 SciTE ,输入以下代码并进行保存操作。
此时会发现无法进行程序的编译,这是因为我们保存的文件名后缀没有进行修改,需要将其改为.lua
。
修改后,如下图
重新打开 SciTE ,这时就可正常使用啦。
运行结果:
四、Lua 保留关键词
五、Lua 八个基本类型
Lua 是动态类型语言,变量不需要定义类型,只需要为变量赋值。
(1) nil
[1]没有任何有效值
按照我目前的理解, nil 类型或许相当于 C# 或者 Java 中的 null。
当一个变量未赋值时,打印该变量的类型会输出 nil :
[2]对全局变量与 table 起到删除作用
全局变量:
table:
未对 table 的 key 进行 nil 赋值
使用nil进行删除操作:
[3] 值与 nil 比较
当使用 type
函数时,因为返回值为 string 类型,所以 nil 必须加上双引号:
(2) boolean
在 Lua 中, nil 与 false 为 false ,其他的都为 true ,包括0。
(3) number
Lua 中只有一种number类型,那就是double(双精度)类型。
(4) string
[1] ’ ’ 与 " "都可表示为字符串
[2] [[]] 表示字符串块
[3] 对数字字符串使用算术操作会将该字符串转换为数字
[4] #可用来计算字符串长度
[5] 字符串连接使用..
(5) table
[1] Lua 中的表是通过构造表达式进行创建的,可以直接使用 {}
构造空表,也可以直接在 {}
中写入值,不同于其他语言的数组把 0 作为数组的初始索引,在 Lua 里表的默认初始索引一般以 1
开始。。
[2] Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字或者是字符串。
这里我注意到 table 的输出顺序不是严格按照加入表中的顺序,以下贴出一篇博客解释了相关问题:
链接
[3] table 不会固定长度大小,有新数据添加时,table 的长度会正常,没有初始化的table 值为nil 。
(6) function
[1] 函数可以被存储在变量中。
[2] function 可以以匿名函数(anonymous function)的方式通过参数传递
(7) thread
在 Lua 中,最主要的线程是协同程序 (coroutine) 。 它跟线程 (thread) 差不多,拥有自己独立的栈、局部变量和指令指针,可以跟其他的协同程序共享全局变量和其他大部分东西。
线程与协程的区别:线程可以同时运行多个,协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起 (suspend) 时才会暂停。
(8) userdata
userdata 是一种用户自定义数据,用于表示一种由应用程序或者 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。