Это то, чем я занимаюсь в последнее время.
Пример:
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'
}
Я что-то пропустил? Или это нормально делать то, что я описал, или это плохая идея?