我该如何格式化这段代码?

Laz*_*zer 2 language-agnostic program-flow

以下是两种调用方式callscript(伪代码):

使用重复的电话

if flag == true
    flag = false
    callscript
    flag = true
else
    callscript
endif
Run Code Online (Sandbox Code Playgroud)

使用额外的变量

flag2 = flag
flag = false
callscript
flag = flag2
Run Code Online (Sandbox Code Playgroud)

条件

  • 我必须确保的是,flag就是false当脚本调用.
  • 此外,该flag值必须恢复为原始值.

有没有比这两个更好的方法呢?如果没有,哪一个是更好的选择?

Guf*_*ffa 5

最好的方法是在调用中发送标志,以便标志和方法之间的关系是明确的:

callscript(false)
Run Code Online (Sandbox Code Playgroud)

如果这不是一个选项,你必须在两者之间做出选择,那么任何一个都可以.没有明显的赢家,两者的可读性大致相同,所以这只是一个品味问题.

如果实际调用很复杂,那么第二个选项会更好,因此你不想在代码中重复它,或者数据类型比布尔值更复杂.