Lua基础需要注意的问题
来源:互联网 发布:java 桌面应用程序 编辑:程序博客网 时间:2024/06/15 17:54
在lua的简单学习语法上,以下是需要我们注意的
1、if语句后面跟then关键字(不管是if、if else、if嵌套),if的条件语句后面一定要加上then关键字,结束以后加上end关键字
形如:
if(a>b)
then
return a
else
return b
end
2、while,for循环语句后面要加上do关键字,结束同样要加end关键字
形如:
for a,b in ipairs(table)
do
print(a)
end
while(1)
do
print("1")
end
3、repeat...until 语句,需要注意的是,这个语句和c/c++/java里面的do...while语句差不多,不用的在于:判断的条件是不满足的时候循环,而不是满足条件语句循环
形如:
lacol a = 10
repeat
a = a+1
print("a="..a)
until(a>15)...条件不满足,则再次循环
输出:
11,12,13,14,15
4、lua的表,索引,不同于别的语言,它的下标是从1开始的,而不是0,你可以打印出来看下
local a = {"a","b","c"}
for i in ipairs(a) do
print(i)
end
输出1,2,3
5、lua的函数,是可以返回多个值的,作为右值的时候,对应补充左值,多余的舍去,不够的初始化nil
6、lua中的关系运算符中,有一个要注意的是:不等于是~=,而不是c/c++/java中的!=,注意
7、lua中的逻辑运算符中,and是与,or是或,not是非
8、lua中其他运算符还有:两个点..代表连接符,#代表取大小
形如:
print("a="..1)
输出:a=1
local a = {"a","b","c"}
local b = "Hello"
print("a="..#a)
print("b="..#b)
输出:a = 3
输出:b = 5
9、字符串的应用string
string.upper(...)//小写转成大写
string.lower(...)//大写转成小写
string.gsub(a,b,num)//在a里面查找b,换num个,num不填代表替换全部
string.find(a,b,num)//在a里面找b,num是索引,返回的是b的位置信息
string.reverse(a)//将a反转
string.format(a,b)//b接在a的格式说明里面,譬如a里面有%d,b = 5,则输出5
string.char(num1.num2.num3)//将对应的num转换为ascii值
string.byte(a,num)//将a转换成字符,num是索引
10、数组的问题,因为lua的数组,列表都是以一种键值对的方式存储的,所以数组的索引是可以用负数的,就像json的key,对应的可以找到value就可以了。但是,不可以为nil
11、表:元表,元方法
setmetatable(A,B)设置表B是表A的元表
元表里元素的查找是一下顺序
1>在表中查找对应的key,有的话,返回value,没有的话,继续向下查找
2>查找是否有元表,没有元表返回nil,有的话继续
3>在元表中查找是否有_index,_index为nil则返回nil、_index为表则返回第一步开始、_index为函数则进入函数体
对于表,要知道的一些元方法
_newindex 是对表的更新,当加入新的键值的时候,不赋值,但是调用元方法,元表添加
当对于旧的键值赋值更新时,赋值,不调用元方法,也就是按照查找的规律,找到了就替换,找不到就在元表里添加
- Lua基础需要注意的问题
- lua如何产生随机数,以及需要注意的问题
- 使用protoc-gen-lua-master需要注意的问题
- 需要注意的问题
- 需要注意的问题
- lua multiple thread 需要注意的事情
- lua 一些需要注意的细节
- 写lua时需要注意的地方
- Lua 初学者需要注意的地方
- 内核中需要注意的一些基础问题集锦
- 并发编程基础入门需要注意的问题
- Java基础 Arrays.atList需要注意的一个问题
- 基础中需要注意的
- lua 获取时间的 os.date时区问题 需要注意的
- Lua脚本接入Android使用JNI调用本地接口,需要注意的问题
- 需要注意的小问题
- 使用需要注意的问题
- toArray()需要注意的问题
- jquery_Ajax
- C#序列化和反序列化之二 自定义序列化
- 【LEAP】整合 Swagger
- ASP.NET 创建工程时:无法创建新的堆栈防护页面
- 用font生成小图标
- Lua基础需要注意的问题
- Eclipse使用心得与技巧
- ubuntu 16.04 卸载旧网卡noveau装新的网卡驱动
- map集合
- css布局
- [课堂笔记]六.常用类
- HSSFWorkbook操作excel读写
- 从0开始做一个的Vue图片/ 文件选择(上传)组件[基础向]
- 在eclipse导入项目如何将多个项目放入一个文件夹中