1. lua入门
创始人
2024-06-02 18:03:33
0

文章目录

    • 数据类型
    • 命令解释器
      • 加载库
      • 环境配置
    • 注释
    • 参考资料

数据类型

  1. lua是动态类型语言,每个值带有自身的类型信息。

  2. 默认情况下,变量总认为是全局的。

  3. 全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是nil

  4. 如果想要删除一个全局变量,只需要将它赋值为nil。当且仅当一个变量不等于nil时,这个变量即存在。

  5. 使用type函数来获取一个值对应的类型名词。

  6. 在逻辑判断时,boolean类型的值efalsenil都视为假,其他都视为真。

数据类型描述
nil只有nil属于该类,表示一个无效值(在条件表达式中相当于false)
boolean包含两个值:false和true。
number相当于C语言的double,双精度浮点数
string由一对单引号或双引号表示的字符串
function由C语言或Lua编写的函数
userdata任意存储在变量中的C数据结构
thread表示执行的独立线路,用于协同程序
tabletable其实是一个关联数组,数组的索引可以是数字、字符串或表类型。table的创建是通过构造表达式来完成的,最简单构造表达式是{},用来创建一个空表

nil在做比较时应该加上引号,因为type(x) == nil中,type(x)返回的实际是"nil"字符串,是一个string类型。

type(type(x)) == string

命令解释器

加载库

lua -l 可以在命令交互模式加载一个库。
命令交互模式下,使用dofile("1.lua")可以加载1.lua作为库,使用其中的函数变量等。

环境配置

解释器造处理参数前,会查找名为LUA_INIT_5_3的环境变量(应该是视lua版本来定),如果找不到,就会再查找名为LUA_INIT的环境变量。

如果这两个变量中的任意一个存在,并且其内容为@filename,那么解释器就会运行相应的文件;
如果变量存在但不是以@开头,那么解释器会认为其包含lua的代码,并会对其进行解释执行。

这样的方法可以完整地配置lua。因而LUA_INIT使得我们可以灵活地配置独立解释器。

例如,可以预先加载程序包、修改路径、定义自定义函数、对函数进行重命名或删除函数,等等。

$ lua script a b c

解释器在运行代码前会创建一个名为arg的表,其中存储了所有的命令行参数。索引0中保存的内容为脚本名,索引1位第一个参数:

arg[-3] = "lua"
arg[-2] = "-3"
arg[-1] = "sin=math.sin"
arg[0] = "script"
arg[1] = "a"
arg[2] = "b"

在脚本之前的选项则位于负数索引上。

lua支持变长参数,在脚本文件中,通过...表示传递给脚本的所有参数。

注释

单行注释用 --

a = 100
-- a

多行注释用--[[--]]


--[[
ok = "ok"
--]]no = "no"

这里一个小技巧就是在--[[前多加一个-,会变成---[[,就会开启被多行注释的代码。

参考资料

参考书籍:lua程序设计(第4版), Roberto lerusalimschy 梅隆魁译

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...