Presentación: http://github.com/ericho/rust-intro.git
Rust es un lenguaje de programación de sistemas extremadamente rápido, previene fallas de segmentación y garantiza la seguridad de los hilos de ejecución.https://www.rust-lang.org/es-ES/
fn main() {
println!("¡Hola mundo!");
}
fn main() {
let s = String::from("¡Hola mundo!");
let a = s;
println!("{}", a);
println!("{}", b);
}
error[E0382]: use of moved value: `s`
--> foo.rs:5:20
|
3 | let a = s;
| - value moved here
4 | println!("{}", a);
5 | println!("{}", s);
| ^ value used here after move
fn main() {
let s = String::from("¡Hola mundo!");
let a = &s;
println!("{}", a);
println!("{}", b);
}
Pruébalo
fn main() {
let s = 5;
s = s + 1;
println!("{}", s);
}
error[E0384]: re-assignment of immutable variable `s`
--> foo.rs:3:5
|
2 | let s = 5;
| - first assignment to `s`
3 | s = s + 1;
| ^^^^^^^^^ re-assignment of immutable variable
fn main() {
let mut s = 5;
s = s + 1;
println!("{}", s);
}
fn add_one(x: &mut i32) {
*x = *x + 1
}
fn main() {
let mut s = 5;
add_one(&mut s);
println!("{}", s);
}
Pruébalo
fn main() {
let raw_p: *const u32 = &10;
unsafe {
assert!(*raw_p == 10);
}
}
pub struct AveragedCollection {
list: Vec<i32>,
average: f64,
}
impl AveragedCollection {
pub fn add(&mut self, value: i32) {
self.list.push(value);
self.update_average();
}
pub fn average(&self) -> f64 {
self.average
}
fn update_average(&mut self) {
let total: i32 = self.list.iter().sum();
self.average = total as f64 / self.list.len() as f64;
}
}