视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Lua表达式和控制结构学习笔记_node.js
2020-11-27 21:30:05 责编:小采
文档


算术操作符

Lua 的算术操作符有:

"+"(加法):

代码如下:
print(1 + 2)

"-"(减法):

代码如下:
print(2 - 1)

"*"(乘法):

代码如下:
print(1 * 2)

"/"(除法):

代码如下:
print(1 / 2)

"^"(指数):

代码如下:
print(27^(-1/3))

"%"(取模):

代码如下:
print(5 % 3)

关系操作符

Lua 提供以下关系操作符:

代码如下:
< > <= >= == ~=

以上操作符返回的运算结果都是 true 或 false。字符串跟数字不可以进行比较

逻辑操作符

逻辑操作符有 and、or、not

代码如下:
print(1 and 2)
print(nil and 1)
print(false and 2)
print(1 or 2)
print(false or 5)

逻辑操作符将 false 和 nil 视为假,其它的为真。

局部变量与作用域

Lua 通过 local 语句来创建局部变量,局部变量的作用域仅限于声明它们的那个块。

代码如下:
local a, b = 1, 10
if a < b then
print(a)
local a
print(a)
end
print(a, b)

用局部变量 local 保存全局变量,可以加速在当前作用域中对全局变量的访问。对于加速的效果,对比下面计算 斐波那契数列(Fibonacci)的执行时间便知:

代码如下:
function fibonacci(n)
if n < 2 then
return n
end
return fibonacci(n - 2) + fibonacci(n - 1)
end
io.write(fibonacci(50), "\n")

使用局部变量 local

代码如下:
local function fibonacci(n)
if n < 2 then
return n
end
return fibonacci(n - 2) + fibonacci(n - 1)
end
io.write(fibonacci(50), "\n")

控制结构

if then elseif else end

代码如下:
if num == 1 then
print(1)
elseif num == 2 then
print(2)
else
print("other")
end

Lua 不支持 switch 语句

while

先判断 while 条件,如果条件为真,继执行循环体,否则结束

代码如下:
local i = 1
while a[i] do
print(a[i])
i = i + 1
end

repeat-until

先执行一次循环体,再判断条件,如果条件为真则退出循环体,否则继续执行循环体。类似其它语言的 do-while 语句,循环体至少会执行一次

代码如下:
local a = 1
repeat
a = a + 1
b = a
print(b)
until b < 10

for 循环

for 循环语句有两种形式:数字型for(numeric for)、泛型for(generic for)

数字型 for 语法:

代码如下:
for start, end, step do
doing something
end

start 是开始值,end 是结束值,step是步长(可选,默认为1)

代码如下:
for a = 10, 0, -2 do
print(a)
end

泛型 for 循环通过一个迭代器(iterator)函数来遍历所有值:

代码如下:
tab = { key1 = "val1", key2 = "val2", "val3" }
for k, v in pairs(tab) do
if k == "key2" then
break
end
print(k .. " - " .. v)
end

break 和 return 语句用于跳出当前执行的块。

下载本文
显示全文
专题