Lua表达式和控制结构学习笔记_node.js
算术操作符
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 print(a)
local a
print(a)
end
print(a, b)
用局部变量 local 保存全局变量,可以加速在当前作用域中对全局变量的访问。对于加速的效果,对比下面计算 斐波那契数列(Fibonacci)的执行时间便知:
function fibonacci(n)
if n return n
end
return fibonacci(n - 2) + fibonacci(n - 1)
end
io.write(fibonacci(50), "\n")
使用局部变量 local
local function fibonacci(n)
if n 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
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 语句用于跳出当前执行的块。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Nginx安装配置Lua支持默认情况下Nginx不支持Lua模块,需要安装LuaJIT解释器,并且重新编译Nginx,或者可使用国人开发的openrestry需要的模块:LuaJIT,Ngx_devel和lua-nginx-module1.环境准备[root@nginx_lua~]#yuminstall-ygccgcc-c++makepcre-develzlib-developenssl-devel2.下载最新的luajit和ngx_devel_kit以及lua-nginx-module解压[r

实现思路直接在nginx做配置黑名单,通过编写逻辑块实现;在服务端(Java)中编写过滤器,在过滤器中统一拦截;在服务端(Java)中编写拦截器,在拦截器中统一拦截;这里列举了3种实现的思路,至于实现方案,可能还有更多,但是我们想想,在nginx中编写逻辑块貌似不是很多人擅长的;在代码层面做不是不可以,而是这样一来,在涉及到高并发的业务高峰期,这必然会对后端服务造成较大的压力,那么还有没有其他更好的处理办法呢?这就是要说的lua,即nginx作为网关仍然作为代理服务器,由于nginx可以集成lu

Vue.js与Lua语言的融合,编写轻量级的嵌入式应用在现代开发中,前端框架Vue.js和脚本语言Lua都各自有着广泛的应用。Vue.js是一款用于构建用户界面的渐进式框架,而Lua则是一种轻量级的脚本语言,经常用于嵌入式应用和游戏开发。本文将介绍如何将Vue.js与Lua语言进行融合,用于编写轻量级的嵌入式应用,并提供代码示例。首先,我们需要安装Vue.j

【实现过程】一、问题分析如果set命令设置上,但是在设置失效时间时由于网络抖动等原因导致没有设置成功,这时就会出现死计数器(类似死锁);二、解决方案Redis+Lua是一个很好的解决方案,使用脚本使得set命令和expire命令一同达到Redis被执行且不会被干扰,在很大程度上保证了原子操作;为什么说是很大程度上保证原子操作而不是完全保证?因为在Redis内部执行的时候出问题也有可能出现问题不过概率非常小;即使针对小概率事件也有相应的解决方案,比如解决死锁一个思路值得参考:防止死锁会将锁的值存成

Vue.js与Lua语言的融合,构建游戏开发的前端引擎的最佳实践和经验分享引言:随着游戏开发的不断发展,游戏前端引擎的选择成为了一个重要的决策。在这些选择中,Vue.js框架和Lua语言都成为了众多开发者的关注点。Vue.js作为一款流行的前端框架具有丰富的生态系统和便捷的开发方式,而Lua语言则因其轻量级和高效性能在游戏开发中得到广泛应用。本文将探讨如何将

一、安装LUAMac上安装LUA很简单,直接使用brew相关命令;brewinstalllua使用lua-v命令可以看到lua已经安装完毕。1)简单使用创建一个test.lua文件,内容为:执行命令:luatest.lua输出为:二、lua语法简介Lua提供了交互式编程和脚本式编程:交互式编程:直接在命令行中输入语法,可以立即执行并查看到执行效果。脚本是编程:编写脚本文件,然后再执行。1、注释lua提供两种注释方式:单行注释和多行注释1)单行注释使用两个减号;--2)多行注释--[[多行注释多行

通过前面idaPro调试或hook,我们可以获取到xxtea解密key,对于sign我们可以直接打开原文件:可以看到sign值:byds。所以,我们可以同过xxtea解密工具(可从GitHub上下源码自己编译)试着解密:以index.luac为例,我们看index.luac解密前后变化:我们看到经过xxtea解密后的lua脚本仍然不是明文!我们之前根据cocos2d框架源码及大神apk反编结果确定就是用的xxtea加密,而且app的lua脚本也有签名值,这也印证了就是xxtea加密方式,但是我们

各网站站长和运营人员经常使用网站数据分析工具,谷歌分析、百度统计、腾讯分析等被广泛使用,要想统计数据先要收集数据,下面和大家分析数据收集的原理,并搭建一个数据收集系统。数据收集原理分析简单来说,网站统计分析工具需要收集到用户浏览目标网站的行为(如打开某网页、点击某按钮、将商品加入购物车等)及行为附加数据(如某下单行为产生的订单金额等)。早期的网站统计往往只收集一种用户行为:页面的打开。而后用户在页面中的行为均无法收集。这种收集策略能满足基本的流量分析、来源分析、内容分析及访客属性等常用分析视角,
