• tatterdemalion@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    6 hours ago

    Sorry, I love Rust but I can’t really agree with you here. They only showed a macro_rules! definition, which is definitely rust syntax. Lifetime annotations are relatively common.

    I will concede that loop labels are incredibly rare though.

    • fruitcantfly@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      6 hours ago

      Loop labels are rare, but they lead to much simpler/clearer code when you need them. Consider how you would implement this kind of loop in a language without loop variables:

      'outer: while (...) {
          'inner: while (...) {
              if (...) {
                  // this breaks out of the outer loop, not just the inner loop
                  break 'outer;
              }
          }
      
          // some code here
      }
      

      In C/C++ you’d need to do something like

      bool condition = false;
      while (...) {
          while (...) {
              if (...) {
                  condition = true;
                  break;
              }
          }
          if (condition) {
              break;
          }
      
          // some code here
      }
      

      Personally, I wouldn’t call it ugly, either, but that’s mostly a matter of taste

      • Ephera@lemmy.ml
        link
        fedilink
        English
        arrow-up
        1
        ·
        40 minutes ago

        Well, you’d typically put the loops into a function and then do an explicit return to jump out of there. I believe, there’s some use-cases where this isn’t possible, which is why I’m cool with loop labels existing, but I’ve been coding Rust for seven years and have not needed them once…