是否可以在此代码中删除无用的ok
变量?
cond1 = true
cond2 = true
cond3 = true
switch
when !cond1
console.log "cond1 failed"
when !cond2
console.log "cond2 failed"
when !cond3
console.log "cond3 failed"
else
ok = true
if !ok then process.exit(1)
console.log "good"
答案 0 :(得分:1)
您可以将代码更改为
Messenger.Default.Register<SelectTargetGroup>(this, msg => SelectGroup(msg.SelectedTargets));
缺点是重复条件检查。
我想你想要显示所有未满足的条件(因为你在switch语句之后放入了process.exit调用)。如果是这样,您的代码存在的问题是它只显示第一个未实现的条件。所以我只想使用if语句
cond1 = true
cond2 = true
cond3 = true
switch
when !cond1
console.log "cond1 failed"
when !cond2
console.log "cond2 failed"
when !cond3
console.log "cond3 failed"
process.exit(1) if !(cond1 && cond2 && cond3)
console.log "good"
总而言之,您必须确定与您的代码的可读性相比,对条件的一次性检查或一次设置和检查变量是否更加昂贵。
如果不是真正处理性能或内存问题,我会给可读性更高的优先级使用类似的东西:
cond1 = false
cond2 = false
cond3 = true
if !cond1
console.log "cond1 failed"
if !cond2
console.log "cond2 failed"
if !cond3
console.log "cond3 failed"
process.exit(1) if !(cond1 && cond2 && cond3)
console.log "good"
如果你应该在addError调用之前或之后编写条件检查,这取决于条件代码的长度。