Continuing my Rust Rants :-)
It’s unfortunate that move
is a keyword. As I write my little programs, I found that that’s a common function name I use. Now I need to come up with something else. adjust ?
And today I learn that Rust does not like recursive functions :-(
(In user space, I’m recursive function happy!)
@acmel Rust is very much becoming dominate (especially by my employer). I like the guarantees that Rust brings, so I’m working on learning it. I bought a book on Rust, which really gets into the details of the language, but honestly, isn’t a good way to learn the language. I found that learning by example is a much better approach.
I have a non trivial program I’m writing (it was one of the programs I had to write for my interview), and I’m hitting all the fun corner cases with it. I’m trying hard to keep an open mind, but for someone that’s been programming C for over 3 decades, it’s really hard to do so. ;-)
Another annoyance is that you can’t compare enums.
use self::Direction::*;
enum Direction { UP, DOWN, LEFT, RIGHT};
fn foo (dir: Direction) {
if (dir == DOWN) { ... } <<--- Error!
}
But instead you must do:
if matches!(dir, DOWN) { ... }
Although I’m ranting here, I also want to add what I really like. The RUST_BACKTRACE
environment variable creating a nice backtrace on assert!()
errors, is really nice!
@jose_exposito That should be the default. I’m finding that I’ll be adding lots of #[derive(...)]
all over the place.
Yes, your book is probably better to learn the language. And I wouldn’t recommend the book I’m using to just learn to program in Rust. But I like the book, because I am interested in how rust works. I want to get as good at rust as I am with C. With most C programs, I can usually visualize what the assembly output would be. I don’t have that with Rust. And this book is useful to have in order to get that kind of understanding of the language.
@michaelphamct @acmel I will admit that I should have just started to learn to program Rust before learning the details of its implementation. But, here I am ;-)
@jose_exposito As Rust is really good at inferring logic, I’m surprised that it couldn’t just infer the PartialEq
trait for simple enums.
I also want to state that I do not dislike Rust. This is just me ranting about things I have grown accustom to as a developer who’s main programming language has been C for over 3 decades!