you are viewing a single comment's thread
view the rest of the comments
[–] 6 points 11 months ago (1 child)

Hey, when you gotta pick a value from a bunch of options, it's either if/elseif/else, ternary, switch/case, or a map/dict.

Ternary generally has the easiest to read format of the options, unless you put it all on one line like a crazy person.

  • source
  • parent
  • hideshow 2 child comments
  • [–] [S] 3 points 11 months ago (2 children)

    me personally, i prefer switch case statements for many-value selection, but if ternary works for you, go ham (as long as you don't happen to be the guy who's code I keep having to scrub lol)

  • source
  • parent
  • hideshow 4 child comments
  • [–] 3 points 11 months ago

    If there's more than two branches in the decision tree I'll default to a if/else or switch/case except if I want to initialise a const to a conditional value, which is one of the places I praise the lord for ternaries.

  • source
  • parent
  • [–] 1 point 11 months ago* (last edited 11 months ago)

    Switch is good if you only need to compare equals when selecting a value.
    Although some languages make it way more powerful, like python match.
    but I generally dislike python despite of this, and I generally dislike switch because the syntax and formatting is just too unlike the rest of the languages.

    Generally I prefer the clear brevity of:

    var foo=
        x>100 ? bar :
        x>50 ? baz :
        x>10 ? qux :
        quux;
    

    Over

    var foo;
    if(x>100) {
        foo=bar;
    } else if(x>50) {
        foo=baz;
    } else if(x>10) {
        foo=qux;
    } else {
        foo=quux;
    }
    

    Which doesn't really get any better if you remove the optional (but recommended) braces.
    Heck, I even prefer ternary over some variations of switch for equals conditionals, like the one in Java:

    var foo;
    switch(x) {
    case 100:
        foo=bar;
        break;
    case 50:
        foo=baz;
        break;
    case 10:
        foo=qux;
        break;
    default:
        foo=quux;
    }
    

    But some languages do switch better than others (like python as previously mentioned), so there are certainly cases where that'd probably be preferable even to me.

  • source
  • parent