Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Most of the time, just `let thing`. Let (ha) type inference do its thing. Explicit type annotations are for when it fails.

`String` is roughly a Java `StringBuffer`, `&str` is roughly a C++ `string_view`.

Yes, you need to rethink how you write code. Rust relies a lot on the basics of typed functional programming. Reading a Haskell tutorial up until the M word would help a lot. But surely there's a lot of good guides written for Rust specifically.

tl;dr the core concept you're looking for is sum types, aka discriminated/tagged unions. If you're going "up" from C level abstraction, imagine a C union starting with an enum that indicates which value is there. That's essentially what it is at the memory level (modulo optimizations). But conceptually, you just have a "this OR that" type. Pattern matching is how you access values of that kind of type.

https://doc.rust-lang.org/book/ch06-01-defining-an-enum.html



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: