Sunting Ini bukan pertanyaan apakah operator ternary berbahaya atau tidak . Ini tentang apakah ada atau tidak ada konsensus tentang apakah harus digunakan di luar pernyataan penugasan. / Edit
Berdasarkan boolean, saya ingin memanggil satu dari dua fungsi yang berbeda (tanpa nilai balik). Saya menulis sedikit javascript ini:
(condition) ? doThis(arg) : doThat(arg)
Yang menurut saya terlihat lebih bersih daripada menulis pernyataan if-else:
if(condition) {
doThis(arg);
}
else {
doThat(arg);
}
Rekan-rekan saya sangat percaya bahwa pernyataan terner hanya boleh digunakan dalam pernyataan penugasan. Saya tidak dapat menemukan panduan gaya yang membahas ini, mungkin karena bahasa seperti Java dan C # tidak mengizinkan ini sama sekali (kompiler mereka membutuhkan operator ternary untuk mengembalikan nilai). Haruskah ini dianggap sebagai penggunaan pernyataan terner yang buruk? Mengapa?
sumber
Jawaban:
Secara umum, operator bersyarat dimaksudkan untuk membuat pernyataan if dengan suatu nilai .
w = x ? y : z
. Jadi, jika Anda menggunakannya untuk efek samping, itu kontra-intuitif. Valid, tetapi kontra-intuitif; dan ingat bahwa Anda sedang menulis kode untuk dibaca oleh rekan setim Anda.sumber
Beberapa kasus, yang bukan tugas, di mana saya menemukan operator ternary berguna:
Dalam argumen fungsi: menurut pendapat saya
lebih sedikit kesalahan daripada
Ketika Anda ingin memanggil satu fungsi atau lainnya dengan argumen yang identik: sekali lagi saya temukan
lebih sedikit kesalahan daripada
Seperti yang saya lihat, hal utama dalam setiap kasus adalah bahwa? form memiliki pengulangan yang lebih sedikit. Pengulangan membuka kemungkinan untuk mengubah satu instance dan lupa untuk mengubah yang lainnya.
sumber