Rust-Compare: a comparison of Rust, C++, and Java
rust-compare.com
rust-compare.com
auto b = make_shared<char>('b');
is preferred over shared_ptr<char> ptr_b(new char('b'));
This style is better because it's shorter and doesn't make you repeat the type :-)Unfortunately, make_unique didn't make it into C++11, but is there for C++14
fn main() {
let x = ["a", "b", "c"];
for i in &x {
println!("{}", i);
}
}You said there are "some pretty wrong statements," any others? You can also fork and fix if you'd like to help... it'd be greatly appreciated!
impl Interfaces {
fn my_method(a: isize) -> isize {
return a;
}
}
It isn't implementation of trait. It specify default implementation of trait.It must be:
trait Interfaces {
fn my_method(a: isize) -> isize;
}
struct Impl;
impl Interfaces for Impl {
fn my_method(a: isize) -> isize {
return a;
}
}
In section "Enums", you can apply default implementation of equality trait: #[derive(PartialEq, Eq)]
enum BasicEnum {
Option1 = 1,
Option2
}
and compare if e1 == BasicEnum::Option1 {
e1 = BasicEnum::Option2
}
In section "Parameters", you said "All three languages default to pass-by-value if not otherwise specified". For privitive types it's true, but it's not. Classes in Java have reference semantic (copy only address in method). Structs in Rust have move semantic witch is connacted with ownership concept (https://doc.rust-lang.org/stable/book/ownership.html).In common, many basic things for Rust have very good descriptions in Rust Book (https://doc.rust-lang.org/stable/book/). Please, pay attension on it and be more careful.