Lua基础语法

编程入门 行业动态 更新时间:2024-10-18 03:35:16

Lua基础<a href=https://www.elefans.com/category/jswz/34/1770552.html style=语法"/>

Lua基础语法

Lua语法基础

  1. 注意和其他语言的差别:

    不要在结尾使用                 ;
    数组的第一个元素下标       是1不是0  不一定是数字为下标
    ------------------------------------------------------------------
    不等于                       ~=
    逻辑与                      and
    逻辑或                       or
    逻辑非                      not
    ------------------------------------------------------------------
    注释用                       --
    空值                        nil
    连字符                       ..
    所有代码块需要结束标志         end
    ------------------------------------------------------------------
    不能使用              i++  i--  ++i   --i

  1. 输出语句:
print("hello world")
>hello world
print("5+2="..(5+2))
>5+2=7
  1. 定义变量:
在lua中,变量的声明不需要声明变量的类型,如下
声明全局变量时  i = 5
声明局部变量时使用关键字 local
local i = 5
  1. 条件分支语句
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
  1. 函数
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
  1. 数组
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
  1. 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 
  1. 字符串
字符串的定义有三种形式a.     str = 'as\ndf'  -------- 单引号定义字符串    	 \n变成回车
b.     str = "as\ndf"	 -------- 双引号定义字符串		 \n变成回车
c. 	   str = [[as\ndf]] -------两个中括号定义字符串       不会将\n变成回车
  1. 错误处理

    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
  1. 字符串常用函数
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基础语法

本文发布于:2024-02-25 19:48:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1700104.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语法   基础   Lua

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!