当前位置: 首页 > article >正文

二、Lua数据类型

文章目录

  • 一、数据类型nil
  • 二、数据类型boolean
  • 三、数据类型number
  • 四、数据类型String
    • (一)用单引号或双引号:
    • (二)可以包含换行的字符串
    • (三)字符串与数字做数学运算时,优先将字符串转换成数字
    • (四)计算字符串长度
  • 五、数据类型-table
  • 六、数据类型-function
  • 七、数据类型-其他
    • (一)thread:协程
    • (二)userdata:存储c、c++数据类型

Lua是一种动态类型的语言。在语言中没有类型定义的语法,每个值都“携带”了它自身的类型信息。

在Lua中有8种基础类型:

  • nil(空)
  • boolean(布尔)
  • number(数字)
  • string(字符串)
  • userdata(自定义类型)
  • function(函数)
  • thread(线程)
  • table(表)

一、数据类型nil

nil是一种类型,它只有一个值nil,它的主要功能是用于区别其它任何值。
一个全局变量在第一次赋值前的默认值就是nil,将nil赋予一个全局变量等同于删除它。
Lua将nil用于表示一种“无效值”的情况,即没有任何有效值的情况。

二、数据类型boolean

lua中只有false和nil 为false,其余都为true

if false or nil then
    print("nil is true")
else
    print("nil is false")
end
 
if 0 then
    print("0 is true")
else
    print("0 is false")
end

在这里插入图片描述

三、数据类型number

lua中,只有一种数字类型-number
8字节、双精度。

print("测试number")
a = 10
print(type(a))

在这里插入图片描述

四、数据类型String

(一)用单引号或双引号:

print('单引号字符串')
print("双引号字符串")

(二)可以包含换行的字符串


i=[[
我是中国人
我是亚洲人
我是地球人
我是太阳系人
]]
print(i)

在这里插入图片描述

(三)字符串与数字做数学运算时,优先将字符串转换成数字

print("测试字符串+")
print("1"+1)
print("1"+"1")

在这里插入图片描述
如果字符串不能转成数字将报错:


print("测试字符串+")
print("1"+1)
print("1"+"1")
print("x"+1)

在这里插入图片描述

(四)计算字符串长度

print(#"aa")

在这里插入图片描述

五、数据类型-table

table 可做数组和map

数组下标从1开始。

print("测试table")
tab1={}
tab2={"v1","v2","v3"}
tab3={key1="value1",key2="value2",key3="value3"}
 
print("-----打印tab3-----")
for k,v in pairs(tab3) do
    print(k.."="..v)  
end
 
print("-----打印tab2------")
for k,v in pairs(tab2) do
    print(k.."="..v)  
end
 
print("-----按数组索引打印数组------")
print(tab2[1])
print(tab2[2])
print(tab2[3])
 
print("-----nil相当于删除------")
tab3["key1"] = nil
for k,v in pairs(tab3) do
    print(k.."="..v)  
end

在这里插入图片描述

六、数据类型-function

function fib(n)
    if n == 1 or n == 2 then
        return 1
    else
        return fib(n-1)+fib(n-2)
    end
end
 
print("fib(10) = " ..fib(10))

七、数据类型-其他

(一)thread:协程

(二)userdata:存储c、c++数据类型


http://www.kler.cn/a/147115.html

相关文章:

  • Unity自定义编辑器:基于枚举类型动态显示属性
  • 切忌 SELECT *,就算表只有一列
  • matlab编写分段Hermite插值多项式
  • git相关操作笔记
  • 直流无刷电机控制(FOC):电流模式
  • C++ STL 中的 vector 总结
  • 运维01:云计算
  • 华为ospf路由协议防环和次优路径中一些难点问题分析
  • 力扣算法练习BM50—两数之和
  • 五子棋游戏
  • 【Linux】bash 终端指令
  • pip install 使用清华镜像源
  • 相同JS代码,多次混淆加密能得到不同的结果吗?
  • C++之常用的拷贝和替换算法
  • 蓝桥杯day01——根据给定数字划分数组
  • 第二节HarmonyOS DevEco Studio创建项目以及界面认识
  • Android系统源码中,在手上没有源码的情况下,需要将编译好的二进制可执行文件放入系统中
  • Python基于机器学习模型LightGBM进行水电站流量入库预测项目源码+数据集+模型,含项目报告
  • 开源与闭源:数字时代大模型之辩
  • ArcGis如何用点连线?
  • 持续集成部署-k8s-高级调度-CronJob:定时任务的应用
  • linux的netstat命令和ss命令
  • 【Mysql】【DB】【sql】提高数据库搜索性能的经验
  • Nginx Openresty通过Lua+Redis 实现动态封禁IP
  • 好用的基于layui的免费开源后台模版layuimini
  • Windows系统下更新后自带的画图软件出现马赛克bug