热更新解决方案2 —— Lua语法相关知识点

概述

开发环境搭建

Lua语法

1.第一个Lua程序

2.变量

print("******变量*******");
--lua当中的简单变量类型
-- nil number string boolean
-- lua 中所有的变量声明 都不需要声明变量类型 它会自动的判断类型
-- 类似C# 中的var
--lua中的一个变量 可以随便赋值 —— 自动识别类型

--通过type 函数 我们可以得到变量的类型
-- type 的返回值是 string

--lua中使用没有声明过的变量
--不会保错 默认值 是nil
print(b)

--nil 有点类似 C#中的null
print("******nil*******");
a = nil
print(a)
print(type(a))
print(type(type(a)))

--number 所有的数据都是number
print("*******number*******")
a = 1
print(a)
a = 1.2
print(a)
print(type(a))

print("*******string*******")
a = "123"
print(a);
print(type(a))
--字符串的声明,使用单引号或者双引号包裹
--lua里 没有char
a = '123'
print(a)
print(type(a))

print("*******boolean*******")
a = true
print(a)
a = false
print(a)
print(type(a))



--复杂数据类型
--函数 function
--表 table
--数据结构 userdata
--协同程序 thread(线程)

3.字符串操作

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

--获取字符串的长度
print("*******字符串长度**********")
s = "Sun木兮"
--一个汉字占3个长度
--英文符号 占1个长度
print(#s)

print("*******字符串多行打印*******")
--方式一
--lua中也是支持转义字符的
print("123\n123")

--方式二
s = [[山有
木兮
木有
枝]]
print(s)
print([[心悦
君兮
	君]])


print("*******字符串拼接*******")
--方式一
--字符串拼接 通过..
print("123" .. "456")
s1 = "111"
s2 = 222
print(s1 .. s2)
s1 = 111
s2 = 222
print(s1 .. s2)

--方式二
print(string.format("山有木兮, 木%d", 67))
--%d: 与数字拼接
--%a: 与任何字符串拼接
--%s: 与字符串配对
--...

print("*******别的类型转字符串*******")
a = true;
print(tostring(a))

print("*******字符串提供的公共方法*******")
str = "abCdeFg"
--小写转大写的方法
--该方法不会改变原字符串,之后返回一个新字符串 (string大部分都不会改变原字符串)
print(string.upper(str))
print(str)
--大写转小写
print(string.lower(str))
--翻转字符串
print(string.reverse(str))
--字符串索引查找
print(string.find(str, "Cde")) --3  5
print(string.find(str, "C")) -- 3  3
--截取字符串
print(string.sub(str, 3)) --CdeFg
print(string.sub(str, 3, 4)) --重载方法
--重复字符串
print(string.rep(str, 1))  --返回的是原字符串
print(string.rep(str, 2))  --abCdeFgabCdeFg 返回两遍字符串
--字符串修改
print(string.gsub(str, "Cd", "**")) -- 返回 ab**eFg	1  1代表修改的次数
str = "abCdeFgCd"
print(string.gsub(str, "Cd", "**")) -- 返回 ab**eFg**	2

--字符转 ASCII码
a = string.byte("Lua", 1)  --将字符串里的一个指定位置转为ASCII码
print(a)
--ASCII码 转字符
print(string.char(a))

4.运算符

print("*******运算符********")

print("*******算术运算符********")
-- 只有 + - * / % ^(幂运算)
-- 没有自增自减 ++  --
-- 没有复合运算符 +=  -=  /=  *=  %=
-- 字符串 可以进行 算数运算符操作 会自动转成 number

--加法
print("加法运算" .. 1 + 2)
a =1
b = 2
print(a + b)
print("123" + 1)  -- 输出:124
print("123.4" + 1) -- 输出:124.4

--减法
print("减法运算" .. 1 - 2)  -- 输出 -1
print("123.4" - 1)  -- 输出: 122.4

--乘法
print("乘法运算" .. 1 * 2)
print("123.4" * 2)  -- 246.8

--除法
print("除法运算" .. 1 / 2)  -- 0.5
print("123.4" / 2)  -- 61.7

--取余
print("取余运算" .. 1 % 2)  -- 1
print("123.4" % 2)  -- 1.4

--幂运算
-- ^ 在lua中 该符号是幂运算 而在C#中^是异或
print("幂运算" .. 2 ^ 5)
print("123.4" ^ 2)

print("*******条件运算符********")
-- > < >= <= == ~=(不等于,C#中是!=)
print(3>1)
print(3<1)
print(3>=1)
print(3>=1)
print(3==1)
print(3~=1)



print("*******逻辑运算符********")
-- 逻辑与 C#中 &&  逻辑或 C#中 ||  取反 C#中 !
-- Lua中 与:and  或:or  非:not  在lua中and、or也支持短路
print(true and false)  -- false
print(true and true)  -- ture

print(true or false)  -- true
print(false or false) -- false

print(not true) -- false

print("********短路测试*********")
print(false and print("123"))  -- 输出 false
print(true and print("123"))  -- 输出: 123 nil

print("*******位运算符********")
-- & | lua中不支持位运算符 需要我们自己实现

print("*******三目运算符********")
-- lua中也不支持三目运算符

5.条件分支语句

print("***********条件分支语句************")
a = 9
-- if 条件 then...end
--单分支
if a > 5 then
	print("124")
end

--双分支
--if 条件 then...else...end
if a < 5 then
	print("123")
else
	print("321")
end

--多分支
--if 条件 then...elseif 条件 then...elseif 条件 then...else...end
if a < 5 then
	print("123")
--lua中 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值