Lua中实现Switch功能

Lua 起航 —— 一些常用基础语法 Lua 起航——常用基础语法 阅读详情

熟悉Lua的大家应该都知道,Lua中是没有Switch语法的,所以很多时候要条件判断的时候只有一条又一条的if 和elseif 去写,但是很多时候看上去很不直观,但是Lua的table类型其实相当强大。利用表结构和匿名函数,我们就可以实现Switch功能。

以下是在项目中的一段应用代码:

function UIActivityTemp.SetPageUIInfoWithIndex(index)--根据索引设置子页面UI信息
	local switch = {
		[1] = function()
			if this.IsActivityOpen(LocalActivityType.SingleCharge) then
				this.SetPlayerSingleChargeDiamondUIInfo(this.activityPageGrid)
			end
		end,
		[2] = function()
			if this.IsActivityOpen(LocalActivityType.DailyAccumulateChargeMoney) then
				this.SetPlayerDailyAccumulateChargeMoneyUIInfo(this.activityPageGrid)
			end
		end,
		[3] = function()
			if this.IsActivityOpen(LocalActivityType.AccumulateChargeMoney) then
				this.SetPlayerAccumulateChargeMoneyUIInfo(this.activityPageGrid)
			end
		end,
		[4] = function()
			if this.IsActivityOpen(LocalActivityType.DailyAccumulateCostDiamond) then
				this.SetPlayerDailyAccumulateCostDiamondUIInfo(this.activityPageGrid)
			end
		end,
		[5] = function()
			if this.IsActivityOpen(LocalActivityType.AccumulateCostDiamond) then
				this.SetPlayerAccumulateCostDiamondUIInfo(this.activityPageGrid)
			end
		end,
		[6] = function()
			if this.IsActivityOpen(LocalActivityType.UpgradeGift) then
				this.SetPlayerUpgradeGiftUIInfo(this.activityPageGrid)
			end
		end,
		[7] = function()
			if this.IsActivityOpen(LocalActivityType.VipBuyGift1) then
				this.SetPlayerVipGift1UIInfo(this.activityPageGrid)
			end
		end,
		[8] = function()
			if this.IsActivityOpen(LocalActivityType.VipBuyGift2) then
				this.SetPlayerVipBuyGift2UIInfo(this.activityPageGrid)
			end
		end,
	}
	local setUIFunc = switch[index]
	if setUIFunc then
		setUIFunc()
	end
end

代码中我们可以看到,我们把匿名函数存储在表中,根据外部参数来运行指定索引的函数,从而实现了Switch功能。

基于RK3588与Gstreamer的端侧实时视频流AI推理系统构建 本文详细介绍了基于RK3588芯片与Gstreamer框架构建端侧实时视频流AI推理系统的完整方案。通过硬件选型、环境配置、OpenCV编译优化、视频流处理实战及模型部署等关键环节的深入解析,展示了如何利用RK3588的6TOPS NPU算力与Gstreamer的低延迟特性,实现工业质检、智能交通等场景下的高效边缘计算。特别针对RTSP推拉流优化、RKNN模型转换等核心技术难点提供了实用解决方案。 阅读详情

相关推荐

ubuntu20.04开机黑屏卡在/dev/sda1:clean,***files,***blocks,解决心得记录

这个问题如果你百度,会发现目前有很多种解决方法。 有更新显卡驱动的,有卸载上一次安装软件的,还有各种奇奇怪怪的故障原因。 如果你是属于上述情况,那么按照百度和论坛的各种指引操作一般都能解决。 但我这里主要说一种特殊情况,就是我什么也没有操作,我什么也没干。就是正常使用系统关了机突然就报错了。 这也是自己亲自遇到的问题,做个小记录方便以后自己回顾。 上一次出现这种情况我重装系统了,这次用了两个月又出现了,重装成本太高,我接受不了,于是找到解决办法。 首先找个终端进入,进入终端的方法很多,用安装u盘

qq_41517017的博客 2万+

lua-switch功能实现

lua中是没有Switch语法的,所以很多时候要条件判断的时候只有一条又一条的if 和elseif 去写。当条件比较多且条件里面的内容比较多的时候,会显得比较乱,而且不利于我们后期去维护。但是lua的table类型其实相当强大,我们可以利用表结构和匿名函数,我们就可以实现Switch功能。 下面,归纳了3种常用的写法(其实原理一样): 第一种: local tab = { [1] = function() print("aaa") end,

michaelafeng的博客 7017

新能源知识库(37)三代储能电芯介绍

2025年储能电芯三代技术演进概述 截至2025年6月,储能电芯已明确划分为三代: 第一代(280Ah):2019-2023年主流,能量密度180Wh/kg,循环寿命8000次,成本降至0.6元/Wh; 第二代(314Ah):2023年起主导,容量超1kWh,能量密度提升20%,循环寿命达15000次,系统成本降低15%; 第三代(500Ah+):2024年量产,能量密度突破440Wh/L(如宁德时代587Ah、阳光电源684Ah),20尺集装箱容量达6-9MWh,零部件成本降30%。 技术路线分化:卷绕派

竹君子之家 7907

lua switch

lua实现switch 和 部分嵌套switch

qq_36248022的博客 1610

用Arduino和FS-i6X遥控器,从零开始打造你的第一只仿生扑翼蝴蝶(附完整代码解析)

本文详细介绍了如何利用Arduino和FS-i6X遥控器从零开始制作仿生扑翼蝴蝶,包括硬件准备、电路连接、代码解析和调试技巧。通过完整的代码示例和参数说明,帮助读者快速掌握仿生机器人的制作要点,实现蝴蝶的自然飞行效果。

weixin_28727975的博客 309

【顾邦小讲堂】第二十四期 电源环路测试从入门到精髓:一文掌握环路测试原理与电压注入点选择依据

电源环路测试是评估开关电源、线性电源等闭环系统稳定性的核心手段,直接关系到电源的稳定性、输出精度、动态响应、抗干扰能力甚至可靠性

GBupupup的博客 2110

[Lua]实现switch的一种方案

Lua实现switch的一种方案 欢迎前往个人博客驽马点滴和视频空间 哔哩哔哩-《挨踢日志》 if ... elseif ... end 形式 local ET_CASE_ONE = 1 local ET_CASE_TWO = 2 local function do_case_one( ... ) print("do_case_one") end local func...

humanxing的专栏 1万+

OpenPCDet安装及其3D检测算法实现

OpenPCDet及pointpillar复现

weixin_58207716的博客 1万+

Lua程序设计学习笔记(一) Lua基本语法(1)

Lua基本语法(一) 1.  开始 (1)基本常识 lua中的标识符可以由任意字母、数字、下划线构成的字符串,但不能以数字开头。 全局变量不需要申明,直接赋值即可创建,删除变量直接赋nil。未申明的变量不会报错,直接返回nil。 行注释以“--”开头;块注释以“--[[”开始,“]]”结束,重启块注释加“-”即可。(住:块注释需独占一行) (2)Lua解析器   在代码文件中第一行输入:#!...

墨、砚 2696

危废焚烧优化控制系统设计与实现:基于数据驱动的控制参数预测

本文提出了一种基于数据驱动的危险废物焚烧过程优化控制方法。系统利用历史运行数据和实时监测数据,通过深度学习模型预测关键控制参数,实现焚烧过程的智能化控制。系统采用Python开发,结合TensorFlow/PyTorch框架,构建了完整的数据采集、预处理、特征工程、模型训练和实时预测闭环系统。该系统能够处理多变量非线性关系,适应工况变化,从历史数据中学习最优控制策略,相比传统PID控制方法具有显著优势。论文详细介绍了系统架构、算法设计和实现细节,为危废焚烧过程的优化控制提供了有效解决方案。

huanghm88的专栏 206

Stable Diffusion 模型分享:Beautiful Realistic Asians(美丽真实的亚洲人)

Beautiful Realistic Asians(BRA)模型是由作者自己训练而成的一个独立模型,它是一个真实模型,并且是一个针对亚洲人训练的模型,可以生成非常漂亮的亚洲小姐姐。条目内容类型大模型基础模型SD 1.5来源CIVITAI作者文件名称文件大小1.99GB。

水滴的博客 2156

lua实现switch功能

lua语言没有switch函数,但是可以通过if..else实现switch功能 function doSwitch(typ) if("v" == typ) then return "VISIT"; elseif("p" == typ) then return "PAGE"; elseif("c" =...

xichengxml的博客 1959

AI上推荐 之 NeuralCF与PNN模型(改变特征交叉方式)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 1万+

Lua实现switch-case

switch是啥?别多想,不是年会发的那玩意儿 ! Lua君说:虽然我没有case,但是我有switch啊,而且你还可以随意改名字,比如你爱慕已久的CuiHua~ 实际上switch同学像是一个表,丢给它一个a,它就把case:a对应的地址给你,丢给它一个b,它就把case:b对应的地址给你,丢给它一个c,人家说,不好意思啊哥,我这儿没有c,就走default了哈~ 既然是这样,我们就造个这样的表...

Mo_Mo123的博客 4385

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Lua中通过table实现switch

因为lua中没有switch,但是可以通过功能强大的table间接去实现类似的功能: 首先先定义个table: switch={}; 然后定义需要的case,就是table内的元素: switch[1] = function()...end switch[2] = function()...end switch[3] = function()...end switch[n] = function()...end 调用的时候就直接: switch[case](); 但是我们会发现可能存在switch[ca

qq_22038235的博客 875

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Lua的语法缺失及替代措施

Lua的一个设计方针是简单,能不加入的语言特性就尽量不加入。于是,Lua中缺少了一些我们常用的语法。下面仅以C语言做参考。缺少continue语句,虽然对逻辑实现没本质影响。但让我们在编程时,代码结构的写法有一些生硬的感觉,不灵活。缺少了switch-case语法,仅用if-elseif-else来替代,在选项比较多的时候,代码很难看,而且效率很低。没有逻辑运算符 AND, OR, NOT ,这在

天地沙鸥 - Csdn站 1万+

lua中实现switch以及sublime下自动补全switch语法

刚开始使用lua的人肯定会不满lua居然没有switch这个语法。 但是熟悉lua的强大特性之后,你会发现其实switch是完全没有必要提供的^.^,因为lua有强大的table和function 例子: [plain] view plain copy local key = 1   local switch = {     

imxiangzi的专栏 2473

C# Switch 的使用与 Lua Switch的实现

简单的switch

qq_30238537的博客 982

【lua】switch case

switch case 的 语法糖 local fs = (function(name,args) local sw = { ["#default"]=function() return " " end, ["functionName"]=function(args)return callback(name,args) en

u014787719的博客 1029

解决Lua语法缺失及替代措施

解决Lua语法缺失及替代措施是本文要介绍的内容,主要是来了解LUA语法的学习。Lua的一个设计方针是简单,能不加入的语言特性就尽量不加入。于是,Lua中缺少了一些我们常用的语法。下面仅以C语言做参考。缺少continue语句,虽然对逻辑实现没本质影响。但让我们在编程时,代码结构的写法有一些生硬的感觉,不灵活。缺少了switch-case语法,仅用if-elseif-else来替代,在选项比较多的时...

weixin_30246221的博客 122

lua中利用table表模拟switch

因为lua中没有switch,有滴童鞋可能觉得太多if elseif 看着难受,不过其实我们可以利用table去模拟switch的功能. 首先定义一个表 switch={} 然后定义各个分支 switch[1]=function()...end switch[a]=function()...end ... ... 然后调用 switch[var]() 记得后面的()不要忘记哦!\(^o^)/~

芒果布丁00的博客 1493

switch 语句设计

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34138521的博客 171

Lua 语法实用技巧讲解

今天来讲一讲在日常开发lua中使用到的一些使用技巧。 本章会用c#来和lua对照着来讲。 首先第一个是C#的switch。在lua当中并没有switch,但是在lua当中我们可以使用table来实现。比如说C#代码是这样的: switch (n) { case 1: //do something break; case 2: //do something break;

weixin_44003966的博客 437

LUA 和 JAVA 的区别

没写完

干燥的空气,湿润的呼吸 1281

Lua学习笔记(1)

  最近在学Lua,看的是《Lua程序设计(第二版)》,似乎是唯一的中文资料了吧。且已经绝版,除了淘宝上能看到若干影印版外,其他的都找不到了。如果有朋友能找到正版的,请不吝相告 记录下初步的感受吧: 1.数据类型   Lua只有:nil(空)、boolean(布尔)、number(数值)、string(字符串)、userdata(自定义类型)、function(函数)、thread(线程)、...

weixin_34362991的博客 65

lua学习

lua学习 lua简介 设计目的 为了嵌入到应用程序中,从而为应用程序提供灵活的扩展和定制功能 特性 可扩展 提供扩展接口和机制,通常扩展到c/C++中 轻量级 使用C语言编写,开源,编译后100k, 方便嵌入到别的程序中 自动内存管理 支持面向过程和函数式编程 应用场景 游戏开发 独立脚本 web应用脚本 扩展和数据库插件:Mysql 环境安装 IDE:SciTe 需要安装vc++2005sp1 ,去官网下载 vsCode 调试环境复杂,git上好多做luadeb

L1ak的博客 636
上一篇: Python中画柱形图分析数据(分析各国红酒的好酒占比数据)
下一篇: Unity中实现动画回放功能
OneWord233
博客等级 码龄9年 64粉丝 46原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值