this is way more nested ternary operators than I would ever use (which I understand is for the sake of example) but if you rearrange them so that the simplest statements are in the true branches, and use indentation, you can make it at least a little more readable
a = a <= b ?
(b < c ? a : d)
: b <= c ?
d
: (a < d ? c : a);
kryptonianCodeMonkey@lemmy.world 2 days ago
Weird example. 3 nested conditionals is not the typical use case for a ternary, and 2 of the 5 branches result in a pointless a=a assignment. I agree this is bad code, but it’s just as bad and hard to parss in a normal if-else structure too:
In another situation, though, it’s perfectly readable to have a much more typical ternary use case like:
a = c > d ? c : d
And a pair of parentheses never hurt readability either:
a = (c > d) ? c : d
BeigeAgenda@lemmy.ca 5 hours ago
Good point, I have only seen 2. nested ternary operators in the wild, and I am pretty sure the second level was added as a bugfix.