これは私が最近よくしていることです。
例:
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'
}
}
これまでコードを書いていた方法ですが、このスタイルは嫌いです。私の不満は、コードの最後の部分が実行される条件がコードから明らかでないということです。したがって、私はこの状態をより明確にするために明示的に書き始めました。
しかしながら:
- 最終的な完全な状態を明示的に書くことは私自身のアイデアであり、私は自分のアイデアで悪い経験をしています-通常、私がやっていることがどれほど恐ろしいかについて人々は私に悲鳴を上げます次善;
- これが悪い考えである理由の1つのヒント:JavaScriptには適用できませんが、他の言語では、コンパイラーは関数の終わりに到達するコントロールについて警告またはエラーを発行する傾向があります。そのようなことをすることのヒントはあまり人気ではないかもしれません、または私はそれを間違っています。
- コンパイラの不満からコメントに最終的な条件が書かれることがありましたが、コードとは異なり、コメントは実際のプログラムのセマンティクスに影響を与えないので、そうすることは恐ろしいことだと思います。
} else { // i > current
circle.src = 'images/25CB.svg'
circle.alt = 'Pick chance'
}
何か不足していますか?それとも、私が説明したことをしても大丈夫ですか、それとも悪い考えですか?