【问题标题】:How do I create a function that passes all its arguments to another function如何创建一个将其所有参数传递给另一个函数的函数
【发布时间】:2019-04-28 13:23:03
【问题描述】:

我正在尝试在我正在玩弄的程序中设置一些功能,以监视我的 Extreme Reactors Turbine(正式名称为 Big Reactors)。我正在尝试做的大部分功能......非常简单,但让我不必将某些代码块排成一百次。

基本上我想做的是停止使用mon.setCursorPos(x, y),其中x 和y 是精确的轴(例如mon.setCursorPos(1,9)),并用更简单的东西代替它,比如cursor(1,9)。问题是我不确定如何设置该功能...

function cursor()
  mon.setCursorPos()
end

上述方法不能正常工作,由于setCursorPos api 调用的() 中缺少字符串值,会发生错误。我对 LUA 还很陌生,老实说,我不是一个出色的编码员,但我试图学会不要那么混乱,并在我不需要的地方画出一些东西。感谢任何帮助/提示,​​祝大家编码愉快!

【问题讨论】:

    标签: function lua minecraft computercraft


    【解决方案1】:

    要传递参数,您首先需要在自己的“包装”函数中定义它们(这里是 x 和 y):

    function cursor(x, y)
        mon.setCursorPos(x, y)
    end
    

    如果您不知道有多少个参数,您可以使用可变参数语法... 来捕获cursor 的参数并将它们传递给mon.setCursorPos:

    function cursor(...)
        mon.setCursorPos(...)
    end
    

    但更简单的方法是做

    cursor = mon.setCursorPos
    

    所以cursor 只是指与mon.setCursorPos 相同的功能。

    【讨论】:

      猜你喜欢
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      相关资源
      最近更新 更多