传递部分函数名称并串联调用原始函数

大家好,这是我第一次在这里发帖(虽然已经读了很多年)。我对 LUA 还比较新,虽然它非常有用和简单,但我仍然有一些困难。

提醒一下,我基本上是在重新发明轮子,但我想让测试人员尽可能轻松地为我使用的模拟引擎创建调试器。我可以容易地让他们按照现有方法操作,但是此时,这是个人问题。我需要了解我的逻辑问题所在。

在引擎中创建调试器的现有方法可能是这样的:

print_message_to_user(string.format("Engine RPM: %d", sensor_data:getEngineRPM()))

但是我正在尝试创建一个函数,debugger(),它可以缩短和简化这个过程:

function debugger(helptext, sensor)
    print_message_to_user(string.format("%s: %d", helptext, sensor_data:..sensor..()))
end

然后像这样调用它:

debugger("Engine RPM", getEngineLeftRPM)

...当然不起作用。我确定这与我尝试将提供的句柄与象征串联起来来调用实际函数的方式有关。

点赞
用户1847592
用户1847592
# 函数:调试器
```lua
function debugger(helptext, sensor)
    print_message_to_user(string.format("%s: %d", helptext, sensor_data[sensor](sensor_data)))
end

该函数用于调试,需要两个参数:helptext 表示帮助文本,sensor 表示传感器。函数会将传入的 helptext 和调用 sensor_data[sensor](sensor_data) 的结果格式化输出给用户。

在本示例中,函数调用 debugger("Engine RPM", "getEngineLeftRPM") 表示需要输出引擎左侧转速的帮助文本。

2016-06-22 14:03:33