nodecu8266 lua应用(二)----lua基本语言基础

本文详细介绍Lua编程语言的基础语法,包括变量定义、流程控制、循环、函数、数组、字符串操作及错误处理等关键概念,适合初学者快速掌握Lua编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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个字符之间的所欲字符,包括ij
如果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])

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值