Skip to content

Commit 5a3d1ee

Browse files
authored
#2 - Rust
1 parent c8e67ca commit 5a3d1ee

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
//==========================
2+
// 02 - FUNCIONES Y ALCANCE
3+
//==========================
4+
5+
fn main() {
6+
// Función sin parámetros y sin retorno
7+
fn saludar() {
8+
println!("¡Hola, mundo!");
9+
}
10+
saludar();
11+
12+
// Función con un parámetro y sin retorno
13+
fn saludar_persona(nombre: &str) {
14+
println!("¡Hola, {}!", nombre);
15+
}
16+
saludar_persona("Owen");
17+
18+
// Función con múltiples parámetros y retorno
19+
fn suma(a: i32, b: i32) -> i32 {
20+
a + b
21+
}
22+
println!("Suma: {}", suma(10, 3));
23+
24+
// Función con retorno implícito
25+
fn resta(a: i32, b: i32) -> i32 {
26+
a - b
27+
}
28+
println!("Resta: {}", resta(10, 3));
29+
30+
// Función con retorno múltiple
31+
fn division(a: i32, b: i32) -> (i32, i32) {
32+
(a / b, a % b)
33+
}
34+
let (cociente, resto) = division(10, 3);
35+
println!("División: {} (cociente) y {} (resto)", cociente, resto);
36+
37+
// Función con argumentos variables
38+
fn promedio(args: &[i32]) -> f64 {
39+
let sum: i32 = args.iter().sum();
40+
sum as f64 / args.len() as f64
41+
}
42+
let numeros = vec![1, 2, 3, 4, 5];
43+
println!("Promedio: {}", promedio(&numeros));
44+
45+
// Variables LOCAL y GLOBAL
46+
let x: i32 = 5; // variable LOCAL
47+
fn usa_variable() {
48+
static Y: i32 = 10; // variable GLOBAL
49+
println!("Y: {}", Y);
50+
}
51+
usa_variable();
52+
println!("X: {}", x);
53+
54+
// Función anidada
55+
fn funcion_externa() {
56+
println!("Función externa");
57+
58+
fn funcion_interna() {
59+
println!("Función interna");
60+
}
61+
funcion_interna();
62+
}
63+
funcion_externa();
64+
65+
// DIFICULTAD EXTRA
66+
fn imprimir_multiplos(param1: &str, param2: &str) -> i32 {
67+
let mut contador = 0;
68+
for i in 1..=100 {
69+
if i % 3 == 0 && i % 5 == 0 {
70+
println!("{}{}", param1, param2);
71+
} else if i % 3 == 0 {
72+
println!("{}", param1);
73+
} else if i % 5 == 0 {
74+
println!("{}", param2);
75+
} else {
76+
println!("{}", i);
77+
contador += 1;
78+
}
79+
}
80+
contador
81+
}
82+
let veces_impreso = imprimir_multiplos("Fizz", "Buzz");
83+
println!("Veces que se ha impreso el número en lugar de los textos: {}", veces_impreso);
84+
}

0 commit comments

Comments
 (0)