这是我最近正在做的事情。
例:
setCircle(circle, i, { current }) {
if (i == current) {
circle.src = 'images/25CE.svg'
circle.alt = 'Now picking'
} else if (i < current) {
circle.src = 'images/25C9.svg'
circle.alt = 'Pick failed'
} else if (i > current) {
circle.src = 'images/25CB.svg'
circle.alt = 'Pick chance'
}
}
通常,if / else阶梯比这要复杂得多...
看到最后一条吗?这是多余的。梯子应该最终能够抓住所有可能的条件。因此可以这样重写:
setCircle(circle, i, { current }) {
if (i == current) {
circle.src = 'images/25CE.svg'
circle.alt = 'Now picking'
} else if (i < current) {
circle.src = 'images/25C9.svg'
circle.alt = 'Pick failed'
} else {
circle.src = 'images/25CB.svg'
circle.alt = 'Pick chance'
}
}
这就是我过去编写代码的方式,但是我不喜欢这种风格。我的抱怨是,从代码来看,执行代码的最后部分的条件并不明显。因此,我开始明确编写此条件以使其更加明显。
然而:
- 明确地写出最后的穷尽条件是我自己的想法,我对自己的想法有不好的经验-通常人们对我大喊大叫,说我在做的事情多么可怕-后来(有时很多)我发现这确实是次优
- 一个提示,说明这可能不是一个好主意:不适用于Javascript,但在其他语言中,编译器往往会发出警告,甚至有关控件到达函数结尾的错误。提示这样做可能不太流行,或者我做错了。
- 编译器的抱怨使我有时在注释中写出最终条件,但我想这样做是可怕的,因为注释与代码不同,对代码的实际语义没有影响:
} else { // i > current
circle.src = 'images/25CB.svg'
circle.alt = 'Pick chance'
}
我想念什么吗?还是可以按照我的描述做,还是一个坏主意?