关于lua的总结记录

lua中的常识部分
在submit中编译的快捷键时ctrl+b
lua中注释的方法
注释的方法
–[[ 多行注释]]
–[[ 多行注释]] –
–[[ 多行注释–]]
–单行注释

1.LUA变量类型
lua中是自动识别类型,也就是说不需要声明类型,默认时为nil
lua的类型:
number
string
boolean
nil
函数 fuction
表 table
数据结构 userdata
协调程序 thread
type()函数 得到变量的类型,返回值时string

2.LUA字符串操作
1.字符串可以与float类型拼接
2.一些函数
print(#str) //获取str的长度
1.string.format(“我今年%d”,18)
%d:与数字拼接
%a:与任何字符拼接
%s:与字符配对
2.string,upper(str)
小写转大写的方法
3.string.lower(str)
大写转小写
4.string.reverse(str)
翻转字符串
5.字符串索引查找
print(string.find(str,“检查部分”))
会打印给你开始标号和结束标号
6.截取字符串
print(string.sub(str,3,4))
只输入单个字符时,只截取那个位置的字符
7.字符串重复
print(string.rep(str,2))
8.字符串修改
print(string.gsub(str,“CD”,"**"))
9.把字符串的字符转换成ASIC码
a = string.byte(“LUA”,1)
10.把ASIC码转换成字符的形式
print(string.char(a))

3.运算符
1.没有自增,自减
2.没有符合运算符 += -= /= %=
(1).算数运算符
当字符串为数字,如“123”时
print(“123” + 1); 显示124
会把字符串强转为number类型



除:会显示成有小数,类似double的形式
1/2 = 0.5
取余
幂运算
2 ^ 3 显示:8
条件运算符

<

=
<=
==
~= //不等于
返回的类型是boolean

逻辑运算符
–&& || !
–and or not
也存在所谓的“短路现象”,及在前半段决定了后半后

位运算符不支持

三目运算符不支持

4.条件分支语句
单分支条件语句
if a > 5 then
print("")
end
多分支条件语句
if a>5 then
print(“分支一”)
elseif
print(“分支二”)
else
print(“分支三”)
end

在lua中没有switch语法

6.循环语句
(1) while do 的循环条件语句
num = 0
while num < 5 do
num = num + 1
print(string.format(“循环第%d次”,num))
end
(2) do while 的循环条件语句
num = 0
repeat --重复
num = num + 1
print(string.format(“循环第%d次”,num))
until num>=5

(3) for 的循环条件语句
for i = 0,5 do
print(i)
end
i从零到五,且在执行语句后会自增1
增量自定义的情况下(此时的增量定为-1)
for i=5,1,-1 do
print(i)
end

7.函数
(1)无参无返回函数

fuction 函数名()
end

a = fuction()
end
(2)有参无返回函数

function F3(a)
print(a)
end
F3(1)
F3(“123”)
可知参数无类型限制,若无参数传入,则默认为空。若多参数传入,则按顺序取第一位。

(3)有返回值的函数

function F4(a)
return a,“123”
end

temp,temp2,temp3 = F4(1)

print(temp)
print(temp2)
print(temp3)
总结:可以多返回值接受,没收到返回值的会被默认为nil

(4)函数重载

fuction F6 ()
print(“123”)
end

fuction F6()
print(“123456”)
end

显示:123456
总结: 后声明的函数,

(5)可变长参数的函数
fuction F7( … )
arg = { … }
for i=1,#arg do
print(arg[i])
end
end
F3[1,2,3,4,5,6]
#arg 表示arg的长度

(6) 函数嵌套
function F9()
return function()
print(“嵌套函数打印”)
end
end
闭包问题考点
function F10(x)
y = 10
return function(y)
return x+y
end
end

y在栈中无法传递

8.用表结构实现数组
所有的复杂类型都是table
1.数组中的类型在lua中可以是不同的
2.在lua中数组是1为开头的
(1)数组的遍历
a = {1,2,nil,4,5,nil,7}
for i=1,#a do
print(a[i])
end
(2)二维数组的遍历
a = {{1,2,3},{1,2,3}}

for i= 1,#a do
for j = 1,#a[i] do
print(a[i][j])
end
end

(3)自定义索引
a = {[1] = 1,[2] = 2,[4] = 4}
lua的数组本质上是指针数组

9.迭代器
1.ipairs
a = {[0] =1,2,[-1] = 3,4,5}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值