【问题标题】:Should I call these functions "procedures"?我应该将这些功能称为“程序”吗?
【发布时间】:2017-09-22 06:49:24
【问题描述】:

我为 Google Chrome 制作了一个插件。它是一个用于浏览器自动化的脚本工具 - 它执行在 javascript 文件中定义的指令并单击链接、填写表单等。

带有指令的简单脚本示例如下所示:

function tron_main(step) {

  switch (step) {

    case 0:
      tron_visit('http://www.example.com');
      break;

    case 1:
      tron_click('#login-button');    
      break;

    case 2:    
      tron_fill('#login-form input.username', 'admin', 1);
      tron_fill('#login-form input.password', 'password123', 1);
      tron_click('#login-form input[type="submit"]', 1);    
      break;

    case 3:    
      tron_end('End of TRON, we should be logged in').    
      break;

  }
}

它会打开一个 url,然后点击登录按钮,然后填写并提交登录表单。

还有可能将“辅助函数”(我现在称之为)用于重复性任务——比如包含自己的一组指令的过程、子例程。

这些“辅助功能”的使用示例:

function tron_main(step) { 
    ...
    case 3:
      // execute secondary function tron_log_me_in()
      tron_execute('tron_log_me_in');
      break;
    ...
}

// our secondary function
function tron_log_me_in(step) {    
  switch (step) {

    case 0:    
      tron_click('#login-button');    
      break;

    case 1:
      tron_fill('#login-form input.username', 'admin', 1);
      tron_fill('#login-form input.password', 'password123', 1);
      tron_click('#login-form input[type="submit"]', 1);
      break;

    case 2:
      // terminate secondary function and return to tron_main() function           
      tron_return();    
      break;

  }
}

我的问题是,调用这些辅助函数“PROCEDURES”是否正确,因为它不返回任何值并且只执行一组指令?即使它实际上是一个javascript函数?或者对于这样的“构造”是否有更合适的命名约定?


完整文档了解更多详情:http://automatron.activit.sk

【问题讨论】:

    标签: function terminology procedure


    【解决方案1】:

    某些语言确实区分了不返回值的过程和返回值的函数,从数学上讲,将不返回值的东西称为函数甚至是不正确的。

    然而,大多数语言都将一切都称为“函数”,而且 50 多年来一直如此,所以如果你调用一个不返回值“函数”的子例程,至少在谈到用只有 javascript 等功能的语言编写的代码。


    顺便说一句,naming-conventions 标记很可能是不合适的,它用于关于如何在实际代码中命名内容的问题,这里似乎不是这样。

    【讨论】:

    • 感谢您的回答。我删除了命名约定标签。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2022-12-10
    相关资源
    最近更新 更多