【问题标题】:Classification for a function that will only execute once只执行一次的函数的分类
【发布时间】:2014-01-15 02:17:20
【问题描述】:

对于只执行一次的函数是否有官方术语或词?我能想到的最简单的例子是像这样的闭包中的 javascript 函数。 (取自here

function createChance() {
  var chanceLeft = true;
  return function() {
      if (chanceLeft) {
          console.log("This was the only chance you had.");
          chanceLeft = false;
      } else {
          console.log('Sorry: you already used your chance');
      }
  };
}

var chance = createChance();
chance();
// This was the only chance you had.
chance();
// Sorry: you already used your chance

【问题讨论】:

    标签: function theory


    【解决方案1】:

    这称为idempotent 函数。无论您调用多少次,它都会在初始运行后返回相同的结果。在其他questions 上有一个很好的explanations(尽管注意接受的警告答案中的cmets)。

    这篇blog 帖子解释了几种幂等与非幂等场景。我在下面粘贴了一个 sn-p,以防将来帖子消失。

    购物车示例:

    • 非幂等:推送“下订单”会在数据库中创建一个新订单。
    • 幂等:按下“下订单”会将订单 4567 从“购物车”状态变为“已完成”状态。

    现实世界的例子

    • 幂等:把那个披萨给我。
    • 非幂等:给我做个披萨。

    密码检查示例

    • 幂等:根据数据库中的哈希检查密码
    • 非幂等:检查密码并在错误时增加错误登录尝试次数

    安装软件示例

    • 非幂等:安装 MongoDB
    • 幂等:安装 MongoDB(如果尚未安装)

    正如您从这些示例和您的问题中看到的那样,幂等函数对第二次、第三次、万次等运行没有影响。它是许多应用程序中的一种常见范式,即使它在设计时并未考虑到“幂等”这个词。

    【讨论】:

    • 我不知道幂等性的“超出初始应用”部分。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2013-05-22
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2017-07-27
    • 2022-11-20
    相关资源
    最近更新 更多