lua语言的学习

转载于:土神121
原地址: https://www.jianshu.com/p/5927eae240ba.

在lua中需要注意

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

输出语句
直接用print()输出

示例:
print("hello world!")
----输出hello world!
print("5+3="..(5+3))
----输出5+3=8

变量定义
在lua中,变量的声明不需要声明变量的类型,如下

示例:
       i = 6-----声明全局变量    
local  i = 7-----声明局部变量

if语句

--if语句框架如下

if  (布尔表达式)   then 
    --执行语句
end 
--示例:
i=6
if (i<7) then 
    print("yes!")
end 
--输出yes!

if-else

--if-else语句框架如下

if  (布尔表达式)   then 
    --执行语句
else
     --执行语句
end
--示例:
i=9
if (i<5) then 
    print("yes!")
else
    print("no!")
end 
--输出no!

elseif

--elseif框架如下

if  (布尔表达式)    then 
    --执行语句
elseif (布尔表达式) then 
   --执行语句
end
示例:
i=7
if  (i<5)    then 
    print("i<5")
elseif (i>6) then 
   print("i>6")
end
--输出i>6

while循环

--while循环框架如下

while (布尔表达式) do 
    --执行语句
end
示例:
i=5
while (i>0) do 
    print(i)
    i=i-1
end
--输出
5
4
3
2
1

for循环

--for循环框架如下

for var=exp1,exp2,exp3 do 
     --执行语句
end 
 ---exp1为初始值;exp2为终值;exp3为递增值,省略则默认为1
for i=1,5,1 do 
    print(i)
end
--输出
1
2
3
4
5

function函数

--函数定义框架如下

function 函数名(参数1,参数2,参数3)
    --执行语句
    return 返回值1,返回值2,返回值3
end
--示例

function f(ex1,ex2)
    ex1=ex1+1
    ex2=ex2-1
    return ex1,ex2
end
i,j=f(9,5)
print("i="..i)
print("j="..j)
--输出
i=10
j=4

数组

--数组定义如下

array1 = {}                    --定义一个空数组
array2 = {1,2,3,4,5,6}         --定义一个赋初的值数组
--示例
array = {1,2,3,4,5,6}
for i=1,6,1 do
    print(array[i])
end
--输出
1
2
3
4
5
6

table

--table的定义

table = {}                  --定义一个空table
table.name="kk"             --给table设置一个属性,key为name,value为“kk”
table.name=nil              --删除属性
--示例
table = {}
table.name="xiaoming"
table.age=12
function table.chifan() 
    print("yes ,yes, yes ")
end

table.age=table.age+5
print(table.name)
print(table.age)
table.chifan()

--输出

xiaoming
17
yes ,yes, yes 

字符串

--字符串的定义有三种形式

a1 = 'asdf'--------单引号定义字符串
a2 = "asdf"--------双引号定义字符串
a3 = [[asdf]]-------两个中括号定义字符串
--示例
a1 = 'as\ndf'                      --将\n变成回车
a2 = "as\ndf"                      --将\n变成回车
a3 = [[as\ndf]]                    --不会将\n变成回车
print("a1="..a1)
print("a2="..a2)
print("a3="..a3)
--输出
a1=as
df
a2=as
df
a3=as\ndf

错误处理
pcall(function,x1,x2,x3)第一个参数为一个函数的名字,注意没有(),后面的参数为需要给函数传递的参数;
函数的第一个返回值表示是否执行成功,成功为ture,不成功为false
若所传递的函数也有返回值,则在pcall返回的第二个值之后接收

function fun(x)
    return 10/x
end
ok,y=pcall(fun,0)
if(ok) then
    print("yes")
    print(y)
    print(ok)
else
    print("no")
    print(y)
    print(ok)
end
--输出
no
stdin:-1: divide by zero
false

字符串常用函数
连接字符串…

--示例
s1="asd"
s2="fgh"
s3=s1..s2
print(s3)
--输出
asdfgh

计算字符串长度string.len(str)

--示例
s1="asdfg"
print(string.len(s1))
--输出
5

查找字符串string.find (str, substr, i ,j)
在str中查找substr,查找区间为str的第i到第j个之间;找到就返回开始下标和结束下标,找不到返回nil

--示例
s1="asdfg"
i,j=string.find(s1,'df')
print("i="..i)
print("j="..j)
--输出
i=3
j=4

提取字符串string.sub(str,i,j)
提取字符串str中的第i个字符和第j个字符之间的所欲字符,包括i和j
如果j取-1则取到最后一个,取-2则取到倒数第二个,以此类推

--示例
s1="asdfghjkl"
print(string.sub(s1,2,6))
--输出
sdfgh

按指定字符分割符串
输入参数,字符和标志,返回数组

--示例
function split( str,reps )
    local resultStrList = {}
    string.gsub(str,'[^'..reps..']+',function ( w )
        table.insert(resultStrList,w)
    end)
    return resultStrList
end
a=[[111,222,333,444]]
print(split(a,',')[1])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值