【Lua】数据类型

记录学习过程

创建日期:2019-04-14

数据类型

Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。
Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。

使用type函数返回数据类型

print(type(“Hello World”))  --string
print(type(print))         --function

nil

print(type(a))  

boolean(布尔)

print(type(true))  --boolean

number(数字)

print(type(2))
print(type(2.2))
print(2e+2) -- 2*102次方

string(字符串)

str = “haha”

可以用”[[ ]]”表示多行字符串(类似C#的@” ”)

strs=
[[
str1
str2
]]

字符串拼接

print("2".."4")  --24

也可以

print(2 .."4")  --24 (注意第一个字符串后面要空格)

运算

print("2"+"4") -- 6 字符串转成number进行加法运算
print("a"+2) --报错,a 无法转成number

print(2+4) -- 2+4

用#来计算字符串的长度

print(#"Hello") --5
print(#"哈哈") --4 中文的字符都占2个字节
strs=
[[
dd
]]
print(#strs) --3 可知空格也占用一个字节  

table(表)
表的值可以为任意类型

tab1={}--空表

tab2 = {key1 = 100,key2 = "Value2"}
key3 = "key3"
tab2[key3]="Value3"--添加表数据
key4 = "key4"
tab2[key4]="Value4"

print(tab2["key1"])--通过key访问表数据
print(tab2[key3])--访问表数据
print(tab2.key3)

tab3={"a","d","c"}
print(tab3[1])--通过索引访问表数据,table的索引从1开始

print("table遍历")

if tab3 ~= nil then --如果table 为nil,遍历table是会出错
	for key,val in pairs(tab3) do
		print(key.. ":"..val)
	end
end
--1:a
--2:d
--3:c

--pairs与ipairs的区别
--pairs的遍历是随机的,但是一定会遍历整个表,先访问索引值,再访问哈希值
--ipairs遍历从1开始,索引断开或下个索引不存在遍历都会终止

function(函数)
函数的定义和使用

function fact(n)--数的阶乘,递归
	if n==1 then
		return n
	else
		return n*fact(n-1)
	end
end

fact2= fact
print(fact2(5)) --120
print(type(fact))

function作为参数传递和匿名函数

tab = {key1="value1",key2="value2"}

function ergodicFun(tab,fun)--遍历
	for k,v in pairs(tab) do
	fun(k,v)
	end
end

function printKV(k,v)
	print(k..":"..v)
end

ergodicFun(tab,printKV)--function作为参数

ergodicFun(tab,
function(k,v) --匿名函数,函数只使用一次
	print(k..":"..v)
end
)
相关推荐
<div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;"> </span> <div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;"> </span> <div style="color:rgba(0,0,0,.75);"> <div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;">当前课程中商城项目的实战源码是我发布在 GitHub 上的开源项目 newbee-mall (新蜂商城),目前已有 6300 多个 star,</span><span style="color:#4d4d4d;">本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 商城项目功能的讲解,让大家实际操作并实践上手一个大型的线上商城项目,并学习到一定的开发经验以及其中的开发技巧。<br /> 商城项目所涉及的功能结构图整理如下:<br /> </span> </div> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <p style="color:#4d4d4d;"> <img alt="modules" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3N0b3JlL25ld2JlZS1tYWxsLXMucG5n?x-oss-process=image/format,png" /> </p> </div> <p style="color:rgba(0,0,0,.75);"> <strong><span style="color:#e53333;">课程特色</span></strong> </p> <p style="color:rgba(0,0,0,.75);">   </p> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <ul> <li> 对新手开发者十分友好,无需复杂的操作步骤,仅需 2 秒就可以启动这个完整的商城项目 </li> <li> 最终的实战项目是一个企业级别的 Spring Boot 大型项目,对于各个阶段的 Java 开发者都是极佳的选择 </li> <li> 实践项目页面美观且实用,交互效果完美 </li> <li> 教程详细开发教程详细完整、文档资源齐全 </li> <li> 代码+讲解+演示网站全方位保证,向 Hello World 教程说拜拜 </li> <li> 技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,可以进一步提升你的市场竞争力 </li> </ul> </div> <p style="color:rgba(0,0,0,.75);">   </p> <p style="color:rgba(0,0,0,.75);"> <span style="color:#e53333;">课程预览</span> </p> <p style="color:rgba(0,0,0,.75);">   </p> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <p style="color:#4d4d4d;"> 以下为商城项目的页面和功能展示,分别为: </p> </div> <div style="color:rgba(0,0,0,.75);"> <ul> <li> 商城首页 1<br /> <img alt="" src="https://img-bss.csdnimg.cn/202103050347585499.gif" /> </li> <li> 商城首页 2<br /> <img alt="" src="https://img-bss.csdn.net/202005181054413605.png" /> </li> <li>   </li> <li> 购物车<br /> <img alt="cart" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvY2FydC5wbmc?x-oss-process=image/format,png" /> </li> <li> 订单结算<br /> <img alt="settle" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3Qvc2V0dGxlLnBuZw?x-oss-process=image/format,png" /> </li> <li> 订单列表<br /> <img alt="orders" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3Qvb3JkZXJzLnBuZw?x-oss-process=image/format,png" /> </li> <li> 支付页面<br /> <img alt="" src="https://img-bss.csdn.net/201909280301493716.jpg" /> </li> <li> 后台管理系统登录页<br /> <img alt="login" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvbWFuYWdlLWxvZ2luLnBuZw?x-oss-process=image/format,png" /> </li> <li> 商品管理<br /> <img alt="goods" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvbWFuYWdlLWdvb2RzLnBuZw?x-oss-process=image/format,png" /> </li> <li> 商品编辑<br /> <img alt="" src="https://img-bss.csdnimg.cn/202103050348242799.png" /> </li> </ul> </div> </div> </div> </div>
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页