Except for esoteric languages, of course. I've yet to see someone claiming some code in Malbodge is crappy and offering a refactored version. ;) Just kidding.
This is even worse in languages that have truthy values, since you don't even have the "== True" thing to help.
H = (C == 0 ? null : V == r ? (g - b) / C : V == g ? (b - r) / C + 2 : (r - b) / C + 4);Between
var v T
if (cond0) {
v = value0
} else if (cond1) {
v = value1
} else if (cond2) {
v = value2
} else {
v = default
}
and val v T = cond0 ? value0
: cond1 ? value1
: cond2 ? value2
: default
I'd much rather have the latter. var v T
switch {
case cond0:
v = value0
case cond1:
v = value1
case cond2:
v = value2
default:
v = default
}> However, your if statement is unidiomatic and quite unlike how you would normally write that particular logic in Go. If you really want to make a fair comparison, you might consider writing it in the way that Go is normally written, not the way that someone familiar with another C-style language might write the code if the ternary operator was taken from them.
meant
> the parens are unnecessary
and they didn't just write that because reasons, which would also be the why they commented an other half dozen times since then but just couldn't come around to showing "how you would normally write that particular logic in Go" because it would take all of 5 minutes.