是否有一个只执行一次的函数的官方术语或单词?我能想到的最简单的例子是像这样的闭包中的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
答案 0 :(得分:1)
这称为idempotent函数。无论你多少次调用它,它将在初始运行后返回相同的结果。其他explanations有一个非常好的questions(但请注意对已接受的警告答案的评论)。
这篇blog帖子解释了几个幂等与非幂等场景。如果邮件将来消失,我会在下方粘贴一个片段。
购物车示例:
- 非幂等:推送“下订单”会在数据库中创建新订单。
- 幂等:推送“下订单”将订单4567从“购物车”移至“最终确定”状态。
真实世界的例子
- 幂等:给我披萨。
- 不是幂等:让我成为披萨。
密码检查示例
- 幂等:根据数据库中的哈希检查密码
- 非幂等:检查密码并增加错误登录尝试(如果错误)
安装软件示例
- 非幂等:安装MongoDB
- 幂等:安装MongoDB(如果尚未安装)
正如您可以通过这些示例和您的问题所看到的,幂等函数对第二,第三,万分之一等运行没有影响。它在许多应用程序中都是一种常见的范例,即使它没有考虑到“幂等”这个词的设计。