5,321
edits
(→Syntax) |
|||
Line 12: | Line 12: | ||
===Basics=== | ===Basics=== | ||
<syntaxhighlight lang="rust"> | <syntaxhighlight lang="rust"> | ||
// Const variable, must have type annotation. | |||
const IMPORTANT_VALUE: i32 = 50; | const IMPORTANT_VALUE: i32 = 50; | ||
fn main() { | fn main() { | ||
// C++: int x = 3; | |||
let mut x: i32 = 3; | let mut x: i32 = 3; | ||
// Shadowing, creating a new variable. | |||
let x = x + 5; | let x = x + 5; | ||
// Loop over values [0, 1, 2] | |||
for i in 0..3 { | for i in 0..3 { | ||
println!("This number is {}", i); | println!("This number is {}", i); | ||
} | } | ||
// Ternary is a single line if statement. | |||
let big_x = if x > 5 {x} else {5}; | let big_x = if x > 5 {x} else {5}; | ||
} | } | ||
fn lerp(a: f64, b: f64, x: f64) -> f64 { | fn lerp(a: f64, b: f64, x: f64) -> f64 { | ||
// No semicolon implies return. | |||
(1.0 - x) * a + x * b | (1.0 - x) * a + x * b | ||
} | } | ||
// Copied from rustlings. | |||
pub fn fizz_if_foo(fizzish: &str) -> &str { | pub fn fizz_if_foo(fizzish: &str) -> &str { | ||
if fizzish == "fizz" { | if fizzish == "fizz" { | ||
Line 53: | Line 53: | ||
let mut y = 6; | let mut y = 6; | ||
// C++: const int & | |||
example_borrow(&x) | example_borrow(&x) | ||
// C++: int& | |||
example_mut_borrow(&mut y) | example_mut_borrow(&mut y) | ||
</syntaxhighlight> | </syntaxhighlight> |