I recently started learning rust, and I was ready for one hell of a fight. I heard all those horror Storys about the compiler complaining about every single detail and that developing rust means having a constant fight with the compiler about seemingly irrelevant things. However, so far I have to tell, that while its somewhat true, that the compiler is somewhat picky, it is incredibly helpful. Never before have I seen such good and helpful compiler messages. It not only says what you did wrong, but also gives direct help on what to do to fix your code. I also really like, that it gives you direct references to the rust book in the compiler messages.

Prior to starting my journey with rust I did quite a lot of python, some C and some bash and their interpreter/compiler messages are nothing when comparing them with rust. Especially the bash error messages are awful if you do not know what they mean and how to fix them.

  • SorteKanin@feddit.dk
    link
    fedilink
    arrow-up
    3
    ·
    1 day ago

    Others have already pointed out the issue - in Rust, String is UTF-8 encoded and therefore characters are variable length. So you can’t just change a character in a string, as it may not fit (e.g. replacing ‘a’ with ‘🙂’ would lead to trouble).

    You can do what the others suggest, but honestly for a game like hangman, I’d suggest you just work directly with chars and don’t use any string. As in, just use a Vec<char> instead of a string. Then you can freely change characters based on index, but this representation uses more memory than a typical String. But this won’t matter for your use case.

    • da_cow (she/her)@feddit.orgOP
      link
      fedilink
      arrow-up
      3
      ·
      1 day ago

      Working with a vector directly would probably be easier, however for a learning experience this was actually great. I read through quite a lot of documentation trying to figure out how I achieve what I want. Might reimplement it with vectors later just for the learning experience.