Bienvenidos sean a este post, hoy hablaremos sobre estos dos elementos.
Cuando hablamos de funciones tanto en C++, como en C# o Java siempre nos referimos a un bloque de instrucciones que nos permite ejecutar una accion determinada por las mismas y los metodos no son otra cosa que funciones contenidas dentro de una clase, en cambio en Rust los metodos son funciones adjuntas a estructuras de datos compuestos o struct, estos se definen por medio del bloque impl pasemos a ver un simple ejemplo:
struct Punto
{
x: f64,
y: f64
}
impl Punto
{
fn origin() -> Punto
{
Punto {x: 0.0, y: 0.0}
}
fn new(mi_x: f64, mi_y: f64) -> Punto
{
Punto (x: mi_x, y: mi_y)
}
}
Aqui tenemos un struct para crear un punto donde tendremos dos coordenadas (x e y), lo siguiente es el bloque impl, observen que tiene el mismo nombre que el struct, dentro tenemos dos metodos que son distintas formas de constructores para crear dos puntos alternativos, no ahondaremos mucho en el codigo pero nos sirve para entender como se usa el bloque impl con respecto al struct.
Vamos a implementar un ejemplo simple, para ello crearemos un proyecto y lo llamaremos ejemplo01, una vez generado modifiquemos el archivo main.rs con el siguiente codigo:
main.rs
struct Perro
{
peso: i32,
edad: i32
}
impl Perro
{
fn nuevo(a: i32, b: i32) -> Perro
{
Perro {peso: a, edad: b}
}
}
fn main()
{
let perro = Perro::nuevo(29, 5);
println!("{} {}", perro.edad, perro.peso);
}
Este es un ejemplo muy simple, primero crearemos un struct llamado Perro que tendra dos atributos, uno para el peso y otro para la edad, luego tenemos una implementacion o bloque impl, en ella creamos un pseudo constructor que servira para iniciar los valores de nuestro struct, observen que es basicamente lo mismo que vimos en el ejemplo basico, luego tenemos el main donde vean que creamos un objeto del struct Perro al cual llamaremos perro y en este usamos el metodo nuevo y le pasamos los valores con los cuales iniciaremos a los dos atributos de este, luego simplemente mostramos los dos valores, compilemos y veamos su salida:
tinchicus@dbn001vrt:~/lenguajes/rust/ejemplo00$ cargo build; cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Finished dev [unoptimized + debuginfo] target(s) in 0.02s
Running `target/debug/ejemplo00`
5 29
tinchicus@dbn001vrt:~/lenguajes/rust/ejemplo00$
Esto es una explicacion muy basica que obviamente a medida que avancemos en el curso iremos mejorando pero por el momento quedense con el struct de esta forma, con el impl de esta forma, y esta forma de crear un objeto para poder acceder al metodo.
En resumen, hoy hemos visto que son las funciones y metodos, en realidad nos centramos mas en los metodos, que son y como se crean, aunque no dejan de ser funciones, hemos visto como implementarlas, despues vimos un ejemplo para verlo en accion, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
