• @philm
            link
            21 year ago

            I don’t understand…? I think I never explicitly run a method/function that is called copy (there isn’t at least not for the trait Copy)

            • @tatterdemalion
              link
              21 year ago

              Lol yea I think the .copy() comment was a little gaslighting or something.

  • @[email protected]
    link
    fedilink
    24
    edit-2
    1 year ago

    I thought it was randomly adding Send and Sync traits to function signatures until rustc is happy.

  • @[email protected]
    link
    fedilink
    211 year ago

    This was me in courses that used C. Keep adding and removing * and & until the IDE was happy and it usually worked.

    • @philm
      link
      81 year ago

      Ah the good old times with C, when things were much more simple (but unsafe…)

        • @philm
          link
          English
          31 year ago

          The “best” way to program dynamically typed…

      • @tatterdemalion
        link
        91 year ago

        EVERYBODY STOP. Nobody make a move or the memory dies. We have a Mexican Memory Standoff.

  • @Blackthorn
    link
    131 year ago

    Follow up of: “Mmm… should I put lifecycle annotation in these 10 structs or just use and Rc and call it a day?”. Rc and Box FTW.

  • raubarno
    link
    fedilink
    121 year ago

    So… now the rustc borrow checker is the new video game boss that is nearly impossible to beat for newcomers, right?

  • @[email protected]
    link
    fedilink
    5
    edit-2
    1 year ago

    I think that’s the only thing I dislike about rust. Not having to use * to dereference but later having to use is tad confusing. I know it’s still clever solution but in this case I prefer c++'s straightforward consistency.

    Using ampersand never was problematic for me.

    • @[email protected]
      link
      fedilink
      English
      241 year ago

      C++ does have the problem that references are not objects, which introduces many subtle issues. For example, you cannot use a type like std::vector<int&>, so that templated code will often have to invoke std::remove_reference<T> and so on. Rust opts for a more consistent data model, but then introduces auto-deref (and the Deref trait) to get about the same usability C++ has with references and operator->. Note that C++ will implicitly chain operator-> calls until a plain pointer is reached, whereas Rust will stop dereferencing once a type with a matching method/field is found. Having deep knowledge of both languages, I’m not convinced that C++ features “straightforward consistency” here…

    • @BravoVictor
      link
      21 year ago

      Yeah, popped in the comments to say the same.

      I dont know what my damage is with pointers…

      • @[email protected]
        link
        fedilink
        31 year ago

        honestly with Go in general I’m in a perpetual cycle of being annoyed with it and then immediately being amazed when I find some little trick for efficiency - with stringer interfaces and the like

  • @[email protected]
    link
    fedilink
    41 year ago

    Same for C, & yields a pointer to a value, and * allows you to access the data. (For rust people, a pointer is like a reference with looser type checking)

      • @[email protected]
        link
        fedilink
        31 year ago

        I doubt many people have ever use that or any of the other low level memory API. The main appeal of rust is not having to do that.

        • Aloso
          link
          English
          11 year ago

          Sure, but raw pointers and unsafe Rust are still covered in the official learning material, so I assume that most Rust devs know about raw pointers.