Rust (programming language): Difference between revisions
Created page with "Rust is a low-level programming language. It's main advantage is supposed to be memory safety by default. Recently, Rust has been adopted to many systems applications such a..." |
|||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Rust is a low-level programming language. | Rust is a low-level programming language. | ||
The main advantage is that it encourages memory-safe programming through reference ownership and by isolating memory-unsafe functions. | |||
==Usage== | ==Usage== | ||
Line 9: | Line 9: | ||
</pre> | </pre> | ||
==Syntax== | |||
===Basics=== | |||
<syntaxhighlight lang="rust"> | |||
// Const variable, must have type annotation. | |||
const IMPORTANT_VALUE: i32 = 50; | |||
fn main() { | |||
// C++: int x = 3; | |||
let mut x: i32 = 3; | |||
// Shadowing, creating a new variable. | |||
let x = x + 5; | |||
// Loop over values [0, 1, 2] | |||
for i in 0..3 { | |||
println!("This number is {}", i); | |||
} | |||
// Ternary is a single line if statement. | |||
let big_x = if x > 5 {x} else {5}; | |||
} | |||
fn lerp(a: f64, b: f64, x: f64) -> f64 { | |||
// No semicolon implies return. | |||
(1.0 - x) * a + x * b | |||
} | |||
// Copied from rustlings. | |||
pub fn fizz_if_foo(fizzish: &str) -> &str { | |||
if fizzish == "fizz" { | |||
"foo" | |||
} else if fizzish == "fuzz" { | |||
"bar" | |||
} else { | |||
"baz" | |||
} | |||
} | |||
</syntaxhighlight> | |||
===Borrowing=== | |||
This is like references or <code>unique_ptr</code> in C++. | |||
<syntaxhighlight lang="rust"> | |||
let x = 5; | |||
let mut y = 6; | |||
// C++: const int & | |||
example_borrow(&x) | |||
// C++: int& | |||
example_mut_borrow(&mut y) | |||
</syntaxhighlight> | |||
==Resources== | ==Resources== | ||
* [https://github.com/rust-lang/rustlings/ Rustlings] - some rust exercises. | * [https://github.com/rust-lang/rustlings/ Rustlings] - some rust exercises. | ||
* [https://doc.rust-lang.org/book/print.html The Rust Programming Language] | |||
* [https://doc.rust-lang.org/stable/rust-by-example/index.html Rust by example book] |
Latest revision as of 15:28, 30 January 2023
Rust is a low-level programming language.
The main advantage is that it encourages memory-safe programming through reference ownership and by isolating memory-unsafe functions.
Usage
Installation
See Install
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Syntax
Basics
// Const variable, must have type annotation.
const IMPORTANT_VALUE: i32 = 50;
fn main() {
// C++: int x = 3;
let mut x: i32 = 3;
// Shadowing, creating a new variable.
let x = x + 5;
// Loop over values [0, 1, 2]
for i in 0..3 {
println!("This number is {}", i);
}
// Ternary is a single line if statement.
let big_x = if x > 5 {x} else {5};
}
fn lerp(a: f64, b: f64, x: f64) -> f64 {
// No semicolon implies return.
(1.0 - x) * a + x * b
}
// Copied from rustlings.
pub fn fizz_if_foo(fizzish: &str) -> &str {
if fizzish == "fizz" {
"foo"
} else if fizzish == "fuzz" {
"bar"
} else {
"baz"
}
}
Borrowing
This is like references or unique_ptr
in C++.
let x = 5;
let mut y = 6;
// C++: const int &
example_borrow(&x)
// C++: int&
example_mut_borrow(&mut y)
Resources
- Rustlings - some rust exercises.
- The Rust Programming Language
- Rust by example book