Lua基本数据类型

news/2025/3/25 21:35:00/

Lua官网文档入口

http://www.lua.org/
document --> manual
在这里插入图片描述

一、基本数据类型

lua 中有八种基本数据型,分别是:
nil,boolean,number,string,function,userdata,thread 和 table。注意:lua 语句结束的分号可加可不加。

Lua 库函数 type返回一个描述给定类型数据的字符串,用法 type(val)

1.1 nil 表示空

--nil类型
a = nil;
print(type(a))

1.2 boolean

--boolean类型
print(type(true))
print(type(false))

1.3 number 只包括整型和浮点型

--number类型
print(type(100))
print(type(3.1415926))

1.4 string 单引号和双引号都表示string 注意:单个字符也是字符串

与C语言一样,可以用反斜杠 \ 对特殊字符进行转义 如:换行符:\n 制表符:\t

如果想原样输出字符串,使用[[]]:

--string类型
str1 = 'hello'
str2 = "world"
str3 = 'A'
print(type(str1))
print(type(str2))
print(type(str3))str4 = "a\nb\tcde"
print(str4)
str5 = [[a\nb\tcde]]
print(str5)

其余基本数据类型,我们在后面的文章再详细展开,这里可以先看下相关类型的打印。

--[[3. userdata 自定义数据类型4. thread 协程5. table 表在 lua 中只有false 和 nil 才表示假, 0 和 空串表示真!
]]--function 类型
print(type(type))  --table 类型
print(type({}))  val1 = 0;
if val1 thenprint("val1 = 0 is true");
elseprint("val1 = 0 is false");
endval2 = "";
if val2 thenprint("val2 is true");
elseprint("val2 is false");
end

运行结果:
在这里插入图片描述

1.5 function

function 在lua中是一个基本数据类型,是第一类值。格式如下:

function funcName(args...)...
end

function的参数和返回值很灵活。

代码示例:

function func1()print("func1 call")
endfunc1()function func2(a, b, c)print(a, b, c)
endfunc2("lwang", 25, "beijing")-- 可变参函数
function func3(...)end-- 将匿名函数赋值给变量
add = function(a, b)return a+b
end
print(add(10, 20)) --作为其他函数的参数
function func4(funcName, a, b)return funcName(a,b)
endlocal res = func4(add, 11, 22)
print(res)

运行结果:
在这里插入图片描述

1.6 table

function 在lua中是一个基本数据类型,是第一类值。格式如下:

# 第一种,类似于map
tableName={k=v,
}
# 第二种,类似于数组,下标从1开始
tableName = {v1, v2, v3, ....}

代码示例:

-- table 类型,类似于map,理论上处理nil都可以所谓key 
stuInfo = {id = 1,name = "zhangsan",age = 18,sex = true
};-- 遍历table中的元素
for k, v in pairs(stuInfo) doprint(k,v)
end
print("==============")
-- 只打印value
for _, v in pairs(stuInfo) doprint(v)
end-- 添加元素
stuInfo.country = "China"
stuInfo["habbie"] = "basketball"
print(stuInfo.country)
print(stuInfo.habbie)-- 删除元素,让索引对应的value指向nil即可
stuInfo.age = nil
print(stuInfo.age)print("======== Array test ========")
nums = {1, 3, 5, 7, "lwang", "panda", true}
-- for k, v in pairs(nums) do
--     print(k, v)
-- end-- 增加元素
nums[10] = 10
nums[100] = 100
for k, v in pairs(nums) doprint(k, v)
end-- 修改指定下标的元素值
nums[1] = "darren"
for k, v in pairs(nums) doprint(k, v)
end

运行结果:
在这里插入图片描述


http://www.ppmy.cn/news/7316.html

相关文章

Git分支操作

实操记录 假定非管理人员操作: 直推: 新建特性分支cbry: 刷新分支: checkout切换: 本地文件查看: 再merge: 就此,master的代码就合并到特性分支cbry: 新增内容&#xff…

基于注解的AOP之准备工作以及各种通知

目录 基于注解的AOP之准备工作以及各种通知 1. 技术说明 2. 准备工作 ①添加依赖 ②准备被代理的目标资源 3. 创建切面类并配置 在Spring的配置文件中配置: ​​​​​​4. 各种通知 各种通知的执行顺序: 基于注解的AOP之准备工作以及各种通知 …

TCP连接积压导致服务假死问题

目录 一、事故表现 二、事故问题分析 三、测试环境重现 四、解决方案 一、事故表现 2022-01-14日凌晨00:00开始,TCP_alloc:已分配TCP连接,一直未释放。导致未释放的 TCP连接一直积压。最终服务LOGISTICS-DS-ES-COMMON-SERVICE假死&#x…

WORDPRESS WOOCOMMERCE购物网站安装AB跳转支付插件接口的教程

本文介绍在Wordpress Woocommerce购物系统上安装支付插件,并且对接《品牌出海AB跳转收单系统》的方法,以下是图文教程 注意本教程是采用Wordoress中文版本后台截取的图例,英文版本后台文字略有不同; 1、首先打开支付插件压缩包&…

设备树的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、设备树的概念?二、设备树的作用三、如何使用设备树1.设备树的位置2.设备树的语法认识DTC、DTS、DTSI、DTB设备节点信息3.添加自己的设备树节点4.…

leetcode-面试题 01.08. 零矩阵

零矩阵 题目详情 编写一种算法,若M N矩阵中某个元素为0,则将其所在的行与列清零。 示例1: 输入: [[1,1,1],[1,0,1],[1,1,1] ] 输出: [[1,0,1],[0,0,0],[1,0,1] ]示例2: 输入: [[0,1,2,0],[3,4,5,2],[1,…

项目实战之旅游网(六)认证与授权

一.编写相关页面 在本项目中,我们使用Spring Security 进行认证和授权,首先我们先编写相关页面。 1.编写登录页面admin_ login.html 2.编写登录失败页面admin_ fail.html 3.编写权限不足页面no_ permission.html 略过。知道其功能即可。 二.编写配置…

python-os模块的使用

os模块封装了常见的文件和目录操作 导入模块 import os常用方法 os.rename(path,new_path_name) os.getcwd(path):返回当前工作目录; print(os.getcwd()) # C:\Users\ThinkStation\Desktopos.listdir(path“.”):返回文件夹下所有文件名…