将变量名传递给函数
2019-4-13 17:38:7
收藏:0
阅读:170
评论:1
我有一个应用程序和一些代码,它们能够工作,但是我想将其变成可调用的函数,例如:
tankFunction("tank1")
这样下面的函数(已经工作)将能够根据输入的参数"tank1"或"tank2"或"tank3"等为任何一个油箱工作。
因此,基本上现有函数中包含的每个变量将表示输入参数:
tank1CoolManCtrlOn = reg.tank1CoolManCtrlOn
目前,上述两个变量仅针对"tank1"编码,如果传递tankfucntion("tank2"),那么变量需要为:
tank2CoolManCtrlOn = reg.tank2CoolManCtrlOn
因此,变量将是####CoolManCtrlOn = reg.####CoolManCtrlOn,其中####是需要输入参数的位置。
一旦创建了这些变量,它们就需要传递给tank()函数,然后返回值就需要设置为输出寄存器中的值。
function tank1Function()
--Tank1 - Start
--这是- Tank1的控制功能块调用
--下面就是为函数块调用设置每个变量的位置
tank1CoolManCtrlOn = reg.tank1CoolManCtrlOn
tank1CoolManCtrlOff = reg.tank1CoolManCtrlOff
tank1HeatManCtrlOn = reg.tank1HeatManCtrlOn
tank1HeatManCtrlOff = reg.tank1HeatManCtrlOff
tank1PV = reg.tank1PV
tank1SV = reg.tank1SV
tank1Debounce = reg.tank1Debounce
tank1Hysteresis = reg.tank1Hysteresis
tank1LowAlm = reg.tank1LowAlm
tank1HighAlm = reg.tank1HighAlm
tank1CoolManIND = reg.tank1CoolManIND
tank1HeatManIND = reg.tank1HeatManIND
tank1Mode = reg.tank1Mode
tank1CTRLType = reg.tank1CTRLType
--这是Tank1的函数块调用,其中每个参数都设置好了。
tank1CoolManIND1, tank1HeatManIND1, tank1CoolManCtrlOn1,
tank1CoolManCtrlOff1, tank1HeatManCtrlOn1, tank1HeatManCtrlOff1 =
tank(tank1CoolManCtrlOn, tank1CoolManCtrlOff, tank1HeatManCtrlOn,
tank1HeatManCtrlOff, tank1PV, tank1SV, tank1Debounce, tank1Hysteresis,
tank1LowAlm, tank1HighAlm, tank1CoolManIND, tank1HeatManIND, tank1Mode,
tank1CTRLType)
--这是函数块的结果将所需变量设置好的地方
reg.tank1CoolManIND = tank1CoolManIND1
reg.tank1HeatManIND = tank1HeatManIND1
reg.tank1CoolManCtrlOn = tank1CoolManCtrlOn1
reg.tank1CoolManCtrlOff = tank1CoolManCtrlOff1
reg.tank1HeatManCtrlOn = tank1HeatManCtrlOn1
reg.tank1HeatManCtrlOff = tank1HeatManCtrlOff1
--Tank1 - End
end
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

你的变量名有很多重复,因此可以使用嵌套表格轻松表示你的坦克。
local tanks = {{}, {}, {}} local reg = {tanks = {{}, {}, {}}} local function tank(t) return { -- 根据t计算字段。 } end local function tankFunction(i) tanks[i] = reg.tanks[i] reg.tanks[i] = tank(tanks[i]) end tankFunction(1)坦克表格会有
PV、SV和Debounce等键。