基于传递给函数的变量选择要写入的数组,Lua。
2015-12-10 19:35:34
收藏:0
阅读:75
评论:2
我正在尝试运行这段代码:
function calcs.grps(Number,ion_color)
grp .. ion_color .. Y[Number] = (ion_py_mm)
grp .. ion_color .. Z[Number] = (ion_pz_mm)
end
在一个Lua脚本中,数组已经存在(例如grp2Y,grp5Z等),我想使用这个函数根据输入的两个变量来填充它们。我一直得到错误“'='期望在'..'附近”。我做错了什么?
为了更详细地说明:
在我的模拟中,“飞行”了120个离子。这实际上是10个离子的12组。每个由离子颜色所区分的10个离子,离子颜色是1到12之间的整数值。变量“Number”只是在每次移动到下一个颜色之前循环1到10次。一旦我填充了这些数组,我想得到每组的标准偏差。
谢谢!
点赞
用户3979429
你的技术问题的答案很简单。只需索引 _G,因为 _G 是一个包含所有全局变量的表:
function calcs.grps(Number,ion_color)
_G['grp' .. ion_color .. Y'][Number] = (ion_py_mm)
_G['grp' .. ion_color .. 'Z'][Number] = (ion_pz_mm)
end
但我认为更好的问题是,为什么不像这样组织...
local ions = {
Red = {
{
Y = 0, --Y属性
Z = 0 --Z属性
},
--继续你的红色离子
},
NewColor = {
Y = 0, --Y属性
Z = 0 --Z属性
},
--继续这种颜色的离子
},
--你明白了
}
function calcs.grps(color, number)
ions[color][number].Y = (ion_py_mm)
ions[color][number].Z = (ion_pz_mm)
end
然后你会传递一个颜色和一个数字,指示该颜色中的哪个离子。
据我看来,这看起来更整洁。
2015-12-10 19:39:03
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的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 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
你不能“构造”变量名称,但可以构造索引。使用两个嵌套表的级别。
function calcs.grps(Number,ion_color) ion['grp' .. ion_color .. 'Y'][Number] = (ion_py_mm) ion['grp' .. ion_color .. 'Z'][Number] = (ion_pz_mm) end事实上,你可以这样做,因为所有的全局变量都只是
_G表中的条目,但是不要这样做,因为这是不好的——它难以阅读,使得一些东西溢出到你没有预期的其他函数中等等。