c++ - 命名变量 Lua

标签 c++ variables lua

我在 Lua 中有以下代码: 美国广播公司:

test (X)

测试功能是用C++实现的。我的问题是:我需要知道作为参数传递的变量名是什么(在本例中为 X)。在C++中只能访问这个变量的值,但我必须知道她的名字。

请帮忙

最佳答案

函数不是传递变量;他们被传递。变量只是存储值的位置。

当你在 Lua 代码中的某处说 X 时,这意味着从变量 X 中获取 value (注意:它实际上更比这更复杂,但我不会在这里讨论)。

所以当你说 test(X) 时,你是在说,“从变量 X 中获取值并将该值作为第一个参数传递给函数测试。”

您似乎想做的是更改 X 的内容,对吧?您想让 test 函数以某种方式修改 X。好吧,你不能直接在 Lua 中这样做。你也不应该。

看,在 Lua 中,您可以从函数返回值。您可以返回多个 值。即使在 C++ 代码中,您也可以返回多个值。因此,无论您想在 X 中存储什么,都可以返回:

X = test(X)

这样,函数的调用者决定如何处理值,而不是函数本身。如果调用者想要修改变量,那很好。如果调用者想把它贴在其他地方,那也很好。您的函数不应该关心一种方式或另一种方式。

另外,这允许用户执行类似test(5) 的操作。在这里, 没有变量;您只需直接传递一个。这就是为什么函数不能修改传递的“变量”的原因之一;因为它不一定是一个变量。仅传递值,因此用户可以简单地传递文字值而不是存储在变量中的值。

简而言之:您不能这样做,也不应该这样做。

关于c++ - 命名变量 Lua,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932852/

相关文章:

c - 对于 switch 语句的情况,在局部 block 中定义变量是个好主意吗?

Python 无法正确比较我分配的变量

bash - 带有参数的可覆盖预定义 Bash 变量

lua - 如何在Lua中将字符串转换成表

lua - awesome-wm:如何更改系统托盘形状

c++ - Makefile:无法获得与 patsubst 一起使用的基名

c++ - 在 xml 中存储 C++ 二进制输出

C++ - 显式和隐式命名空间实现差异

c++ - CIELab 空间中的颜色输出

http - 如何以简单、无痛的方式提供 lua 页面/脚本?