语法"/>
Lua基础语法
Lua语法基础
-
注意和其他语言的差别:
不要在结尾使用 ; 数组的第一个元素下标 是1不是0 不一定是数字为下标 ------------------------------------------------------------------ 不等于 ~= 逻辑与 and 逻辑或 or 逻辑非 not ------------------------------------------------------------------ 注释用 -- 空值 nil 连字符 .. 所有代码块需要结束标志 end ------------------------------------------------------------------ 不能使用 i++ i-- ++i --i
- 输出语句:
print("hello world")
>hello world
print("5+2="..(5+2))
>5+2=7
- 定义变量:
在lua中,变量的声明不需要声明变量的类型,如下
声明全局变量时 i = 5
声明局部变量时使用关键字 local
local i = 5
- 条件分支语句
4.1 if 语句if (条件) thenpass
end
-----------------------------------
4.2 if-else 语句if (条件) thenpass
elsepass
end
-----------------------------------
4.3 if elseif 语句
if (条件) thenpass
elseif (条件) thenpass
end
-----------------------------------4.4 while 语句
while (条件) dopass
end
-----------------------------------
4.5 for语句
for var = exp1,exp2,exp3 do pass
end ---exp1为初始值;exp2为终值;exp3为递增值,省略则默认为1
例如:for i= 1,5,1 do print(i)end
- 函数
function 函数定义function 函数名(参数1,参数2,参数3)passreturn 返回值1,返回值2,返回值3
end例如:function fun(ex1,ex2)ex1 = ex1+1ex2 = ex2-1return ex1,ex2endi,j=fun(9,5)print("i="..i)print("j="..j)--输出i=10j=5
- 数组
array 定义
array = {} --定义一个空数组
array1 = {1,2,3} --定义一个赋初的值数组array = {1,2,3,4,5,6}
for i = 1,6,1 doprint(array[i])
end
--输出 1 2 3 4 5 6
- table
table的定义
table = {} --定义一个空table
table.name="kk" --给table设置一个属性,key为name,value为“kk”
table.name=nil --删除属性
例如able = {}table.name = "xiaoming"table.age = 12function table.chifan() print("yes ,yes, yes ")endtable.age = table.age + 5 -- 17 = 12 + 5
print(table.name) --xiaoming
print(table.age) --17
table.chifan() --执行调用函数--输出如下
xiaoming
17
yes ,yes, yes
- 字符串
字符串的定义有三种形式a. str = 'as\ndf' -------- 单引号定义字符串 \n变成回车
b. str = "as\ndf" -------- 双引号定义字符串 \n变成回车
c. str = [[as\ndf]] -------两个中括号定义字符串 不会将\n变成回车
-
错误处理
pcall(function, x1, x2, x3)第一个参数为一个函数的名字,注意没有(),后面的参数为需要给函数传递的参数;
函数的第一个返回值表示是否执行成功,成功为ture,不成功为false
若所传递的函数也有返回值,则在pcall返回的第二个值之后接收
function fun(x)return 10/x
endok,y = pcall(fun,0) -- ok = false
if(ok) thenprint("yes")print(y)print(ok)
elseprint("no")print(y)print(ok)
end
--输出
no
stdin:-1: divide by zero
false
- 字符串常用函数
10.1 连接字符串 ..
str1 = "hello"
str2 = "world"
print(str1..str2)
>输出 helloworld
-------------------------------------
10.2 计算字符串长度 string.len(str)
10.3 查找字符串string.find (str, substr, i ,j)在str中查找substr,查找区间为str的第i到第j个之间(不写为全部查找);找到就返回开始下标和结束下标,找不到返回nil
例如str = "asdfg"i,j = string.find(str,'df')print("i="..i)print("j="..j)--输出i=3j=4
--------------------------------
10.4 提取字符串string.sub(str,i,j)提取字符串str中的第i个字符和第j个字符之间的所欲字符,包括i和j
如果j取-1则取到最后一个,取-2则取到倒数第二个,以此类推
例如str = "asdfghjkl"print(string.sub(str,2,6))--输出sdfgh
----------------------------------------
10.5 按指定字符分割符串 输入参数,字符和标志,返回数组
例如function split( str,reps)local resultStrList = {}string.gsub(str,'[^'..reps..']+',function ( w ) --将匹配到的字符串插入到一个table中table.insert(resultStrList,w) end)return resultStrListenda=[[111,222,333,444]]print(split(a,',')[1])
>111
更多推荐
Lua基础语法
发布评论