【Lua】 Lua学习笔记(一)

一、前言

哈喽大家好,我是 FEZ98 ,好久没与大家见面了。之前计划好了每周写一篇文章进行记录每周的学习成果,结果计划赶不上变化(其实是懒)。好了废话少说,这个系列是我系统学习Lua语言的学习笔记,我会把遇到的一些比较值得记录与关注的知识写在里面,供自己以后进行回顾。

二、Lua 与热更新

至于为什么要使用热更新与 Lua 框架的使用,因为有大佬博客写得比较详细了,我这里就直接给出文章链接地址了,强烈推荐大家读一下。

链接

三、Lua 环境安装

Window 系统上安装 Lua,可以使用一个叫 “SciTE” 的 IDE 环境来执行 lua 程序,下载地址为:

Github 下载地址

之后一直点击下一步进行没有什么值得特别注意的地方。

安装完之后,我们打开 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 变量中调用。

猜你喜欢

转载自blog.csdn.net/weixin_43057990/article/details/131765459
LUA