News for hackers. Stuff that matters.
Re:Rust vs C Pitfalls by Manishearth on Wednesday December 28, 2016 @12:50PM (#13272181)
No, the default integer is u32. If type inference can't provide a better type, Rust will pick u32. If type inference can pick a better type it will use it. So if you create an unsuffixed int literal and use it for indexing, that literal will be a usize.

Rust will type error if you try to use u32s with an array so it's all good though. Just means that you need to specifically `: usize` things.

If you need an integer type for counting stuff, u32 is fine. If you actually need to talk about memory, use usize. The compiler will force you to do it.

Re:Rust vs C Pitfalls by ayosec on Wednesday December 28, 2016 @02:37PM (#13273026)
> No, the default integer is u32

Maybe I'm missing something, but it seems to be i32: https://play.rust-lang.org/?gist=c79d4afef7fa20c81ba14de61f5...

Re:Rust vs C Pitfalls by mmstick on Wednesday December 28, 2016 @01:56PM (#13272682)
That makes sense. I've never noticed what the default size was, but because it always worked with indexing, I assumed that it was always usize.
Re:Rust vs C Pitfalls by Manishearth on Wednesday December 28, 2016 @02:22PM (#13272887)
I believe it used to be uint (usize) back in pre-1.0, and IIRC inference didn't work well or wasn't supposed to work at all. I recall needing explicit prefixes on my int literals back then. No longer the case.