diff --git a/_images/rust-ferris.png b/_images/rust-ferris.png new file mode 100644 index 0000000..d553e74 Binary files /dev/null and b/_images/rust-ferris.png differ diff --git a/_images/rust-memory.png b/_images/rust-memory.png new file mode 100644 index 0000000..1db55bc Binary files /dev/null and b/_images/rust-memory.png differ diff --git a/_images/rust-reference.png b/_images/rust-reference.png new file mode 100644 index 0000000..394b801 Binary files /dev/null and b/_images/rust-reference.png differ diff --git a/porque-rust.html b/porque-rust.html new file mode 100644 index 0000000..74f6eac --- /dev/null +++ b/porque-rust.html @@ -0,0 +1,514 @@ + + +
+ + ++ A languagem mais amada segundo o StackOverflow Survey + +
... pelo 4⁰ ano seguido.
+ +
+fn main() {
+ let a = 2;
+ a = 3;
+ println!("{}", a);
+}
+
+
+3 | let a = 2;
+ | -
+ | |
+ | first assignment to `a`
+ | help: make this binding mutable: `mut a`
+4 | a = 3;
+ | ^^^^^ cannot assign twice to immutable variable
+
+
+fn main() {
+ let mut a = 2;
+ a = 3;
+ println!("{}", a);
+}
+
+
+a = 2
+
+ a
tem o valor 2"
+ a
tem o valor 2"
+
+0x3f5cbf89 = 2
+
+
+fn main() {
+ let a = String::from("hello");
+ let _b = a;
+ println!("{}", a)
+}
+
+
+error[E0382]: borrow of moved value: `a`
+ --> src/main.rs:5:20
+ |
+4 | let _b = a;
+ | - value moved here
+5 | println!("{}", a)
+ | ^ value borrowed here after move
+ |
+ = note: move occurs because `a` has type `std::string::String`, which does not implement the `Copy` trait
+
+ References
+
+fn main() {
+ let a = String::from("hello");
+ let _b = &a;
+ println!("{}", a)
+}
+
+
+enum IpAddr {
+ V4,
+ V6
+}
+
+
+enum IpAddr {
+ V4(String),
+ V6(String),
+}
+
+
+let home = IpAddr::V4(String::from("127.0.0.1");
+
+match home {
+ V4(address) => println!("IPv4 addr: {}", address),
+ V6(address) => println!("Ipv6 addr: {}", address),
+}
+
+
+enum Option<T> {
+ Some(T),
+ None
+}
+
+
+try:
+ something()
+except Exception:
+ pass
+
+
+try {
+ something();
+} catch (Exception ex) {
+ System.out.println(ex);
+}
+
+
+FILE* f = fopen("someting.txt", "wb");
+fprintf(f, "Done!");
+fclose(f);
+
+
+enum Result<T, E> {
+ Ok(T),
+ Err(E),
+}
+
+
+File::create("something.txt") match {
+ Ok(fp) => fp.write_all(b"Hello world"),
+ Err(err) => println!("Failure! {}", err),
+}
+
+
+File::create("something.txt") match {
+ Ok(fp) => fp.write_all(b"Hello world") match {
+ Ok(_) => (),
+ Err(err) => println!("Can't write! {}", err),
+ }
+ Err(err) => println!("Failure! {}", err),
+}
+
+
+let mut file = File::create("something.txt).unwrap();
+file.write(b"Hello world").unwrap();
+
+
+let mut file = File::create("something.txt)?;
+file.write(b"Hello world")?;
+OK(())
+
+
+fn sum_of_squares(input: &[i32]) -> i32 {
+ input.iter()
+ .map(|&i| i * i)
+ .sum()
+}
+
+
+fn sum_of_squares(input: &[i32]) -> i32 {
+ input.par_iter()
+ .map(|&i| i * i)
+ .sum()
+}
+
+
+#[logfn(ok = "TRACE", err = "ERROR")]
+fn call_isan(num: &str) -> Result<Success, Error> {
+ if num.len() >= 10 && num.len() <= 15 {
+ Ok(Success)
+ } else {
+ Err(Error)
+ }
+}
+
+ Dropbox
+ +Petabyte storage
+Mozilla
+ +Base do Firefox Quantum
+Microsoft
+ +Usado na parte de IoT do Azure
+