• tunetardis@lemmy.ca
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    I saw while(i --> 0) in someone else’s code and thought wth is this --> operator? Then I realized it’s while(i-- > 0) and thought cool, I gotta do this!

  • mfz@kbin.social
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    Isn’t the evaluated value different from the expression? i++ returns the value of i before increasing. i-=-1 would return the value after it has been increased. Wouldn’t it be more correct to make it equal to ++i

    • maiskanzler@feddit.de
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      And that’s why post- and pre-increment is non-existant in Python and Rust. It’s an easy source for bugs for a noncritical abbreviation🤷

      • Knusper@feddit.de
        link
        fedilink
        arrow-up
        0
        arrow-down
        1
        ·
        1 year ago

        They’re especially also a source of bugs, because they encourage manually incrementing indices and manually accessing array positions, which is almost never actually sensible.

    • Knusper@feddit.de
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      In the languages I know, i-=-1 or x=3 are not expressions, but rather statements, so they do not evaluate to a value.

      So, this would be a compiler error:

      a = (x=3)