如何为表中的函数设置名称。
2013-10-9 10:11:35
收藏:0
阅读:123
评论:3
例如,我有一个表格
`` ` table.insert(t,1,function() print(“ rock”); end);
```
有没有办法从这个表格中获取函数名称。 我知道我可以像键一样存储名称,但是如果我想保留数字索引并且我还想知道函数名称怎么办? 有没有办法做到这一点? 提前感谢。
原文链接 https://stackoverflow.com/questions/8574719
点赞
stackoverflow用户513763
事实上,table.insert 将表视为仅具有数值键的序列。
如果您想要像 t.fun()
这样调用函数,您需要将表用作关联数组,因此使用字符串作为键。(顺便说一下,除了 nil 或 NaN 外,任何类型都可以作为键)
t={}
t['MyFun']=function print'foo' end
t.myFun() -- 使用语法糖进行有效标识符的字符串键。
你还可能注意到函数是按引用传递的。因此,所有函数实际上都是匿名的,并且只存储为某个键或变量的值。
2011-12-20 11:59:40
stackoverflow用户312586
可以将名称存储在另一个表中。
functions = {}
functionNames = {}
function addFunction(f, name)
table.insert(functions, f)
functionNames[name] = f
end
要获取函数,可以使用索引。一旦获得了函数,就可以从 functionNames
中获取其名称:
f = functions[3]
name = functionNames[f]
祝好运!
2011-12-20 15:01:52
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在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中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
这个函数没有名称。如果你想的话,可以将它分配给一个命名变量:
theFunction = t[1] -- 调用它: theFunction()
如果你想要将一个命名函数存储到表中,先定义它,然后使用它的名称来存储它:
theFunction = function() print ("rock"); end table.insert(t, 1, theFunction)
如果这不是你想要的,请提供更多细节;例如,你想如何访问这个函数。你的问题有点模糊。