Learning Rust · Rust Programming Language Tutorials for Everyone!<br>Made by a human · Made for a humanRust Illuminated.<br>Grasp Quickly.
Rust Programming Language Tutorials for Everyone!
Get Started<br>Contribute
Data and behavior
Structs, Impls and Traits
struct Person {<br>name: String,<br>company_name: String,
impl Person {<br>fn new(name: String, company_name: String) -> Self {<br>Self { name, company_name }
fn intro(&self) -> String {<br>format!("I'm {} from {}", self.name, self.company_name)
trait Greet {<br>const PREFIX: &'static str = "Hello";
fn greet(&self) -> String {<br>format!("{}!", String::from(Self::PREFIX))<br>impl Greet for Person {}
fn main() {<br>let steve = Person::new("Steve".to_string(), "Apple".to_string());
println!("{}", steve.greet()); // Hello!<br>println!("{}", steve.intro()); // I'm Steve from Apple
Functional
Iterators, Filters, and Maps
fn main() {<br>let marks = ["10", "20", "30", "0.4", "0.5", "invalid"];
let sum: i32 = marks<br>// Iterate through marks<br>.iter()<br>// Parse string to float, ignore if invalid<br>.filter_map(|&s| s.parse::f64>().ok())<br>// Multiply decimals under 1.0 by 100<br>.map(|num| if num 1.0 { num * 100.0 } else { num })<br>// Trace the values<br>.inspect(|&val| println!("Parsed: {val}"))<br>// Cast float to integer<br>.map(|num| num as i32)<br>// Aggregate<br>.sum();
println!("Final: {sum}"); // 150
Advanced blueprint
Enums, Generics and HashMap
use std::collections::HashMap;
enum DataK, V> {<br>Value(V),<br>KeyValue(K, V),
fn main() {<br>let data = vec![<br>Data::KeyValue("Steve", 10),<br>Data::Value(20),<br>Data::KeyValue("Bill", 30),<br>Data::Value(40),<br>];
let map = data<br>.into_iter()<br>// Pattern matching and destructuring<br>.map(|item| match item {<br>Data::KeyValue(k, v) => {<br>println!("{k}: {v}");<br>(k.to_string(), v)<br>Data::Value(v) => {<br>println!("unknown: {v}");<br>("unknown".to_string(), v)<br>})<br>// Accumulate items into a map<br>.fold(HashMap::new(), |mut map, (key, value)| {<br>map.entry(key)<br>.and_modify(|existing| *existing += value)<br>.or_insert(value);<br>map<br>});
println!("Map: {:?}", map); // Map: {"unknown": 60, "Bill": 30, "Steve": 10}
The world’s fastest framework for building websites.
Fully static search library that aims to perform well on large sites.
Modern & modular technical documentation and blog setup.
Help us to improve the documentation.