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
值必须恢复为原始值.有没有比这两个更好的方法呢?如果没有,哪一个是更好的选择?
最好的方法是在调用中发送标志,以便标志和方法之间的关系是明确的:
callscript(false)
Run Code Online (Sandbox Code Playgroud)
如果这不是一个选项,你必须在两者之间做出选择,那么任何一个都可以.没有明显的赢家,两者的可读性大致相同,所以这只是一个品味问题.
如果实际调用很复杂,那么第二个选项会更好,因此你不想在代码中重复它,或者数据类型比布尔值更复杂.