language-agnostic - 如何一次触发一个功能……?

标签 language-agnostic loops boolean

我经常只想触发某个函数一次,但是我需要从另一个被重复调用的函数中触发它。例如,拍摄某物的快照以备后用。我通常通过设置全局 boolean 值来做到这一点。

我想知道我的做法是否实际上是最好的方法?

我似乎回想起曾经读过的内容,即全局变量是错误的,而全局 boolean 变量甚至更糟!

无论如何,这就是我通常一次完成一次触发某个方法的方式:

在我最初的一组变量中...

private var myStatus:Boolean = false;

然后,在经常调用的函数中...
if (!myStatus) {
    doMyFunction();
    myStatus = true;
}

对我来说似乎很合逻辑,但这是对的吗?

UPDATE :好吧,根据我从您的答案中学到的知识,我现在首先检查XML节点是否存在(而不是检查全局 boolean 变量)(我将图像存储在XML结构中,然后再写入磁盘),并且,如果没有,那么我将使用base64编码的图像数据附加一个新节点。我仍然设置了一个 boolean 标志,以便以后可以根据需要用用户编辑的图像数据覆盖空白图像。它完美地工作。谢谢大家的帮助!

我现在在某些情况下使用该特定的(线程不安全的)系统也感到更加自在。

最佳答案

当您调用函数时,它应该按照您给它提供的参数执行预期的操作。如果您以完全相同的方式两次调用一个函数,则应该期望该函数能够为您提供相同的结果或执行相同的操作。

最好将一次调用依赖关系转移到多次调用函数的逻辑上。如果只需要调用一次函数,则只需调用一次。或者,将不同的参数传递给函数以指示您在做不同的事情。

关于language-agnostic - 如何一次触发一个功能……?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/354556/

相关文章:

algorithm - 基本算法证明

algorithm - 广度优先搜索 : the timing of checking visitation status

javascript - 两个 'if' 语句和 'if/else' 循环之间的差异

javascript - for循环设置多个onclick监听器?

排除数字的算法

unit-testing - 我应该测试私有(private)方法还是只测试公共(public)方法?

javascript - 在 JS 中过滤二维数组

python - 数据框中的 Pandas boolean 值比较

java - 比较两个数组的数组元素时, boolean 结果始终返回 true

javascript - 字符串化数组是一个好习惯吗?