Bienvenidos sean a este post, hoy hablaremos sobre unas de las variables mas particulares y utilizadas en todos los lenguajes.
Un array o arreglo, dependiendo del libro que lo leas o la persona que lo enseña, es una variable muy particular dado que nos permite almacenar multiple informacion en una sola, esto se hace mediante distintas posiciones en el mismo ya sea para agregarlas o recuperarlas, veamos como definir un array en su forma mas basica:
let mi_arreglo = ["Lovecraft", "Poe", "Barker", "King"];
En este caso creamos un array de 4 elementos donde almacena un dato en cada posicion, y como dijimos esta es su forma mas basica, otra opcion para crearlos es la siguiente:
let mut mi_arreglo: [i32; 4] = [2, 4, 8, 16];
En este caso tenemos un array de tipo mutable, de tipo int de 32 bits y le asignamos un tamaño de cuatro elementos y luego le pasamos los valores como en el primer ejemplo, tambien podemos hacer lo siguiente:
let mut arreglo_vacio: [&str; 0] = [];
En este caso generamos un array vacio de tipo String, dado que le pasamos como cantidad cero no posee ningun lugar para almacenar informacion, tambien podemos almacenar el mismo valor en varias posiciones, para ello debemos hacer lo siguiente:
let arreglo = [123; 4];
En este caso almacenara cuatro veces el valor 123, para entender el concepto vamos a realizar un simple ejemplo, en este caso primero crearemos un proyecto llamado arreglos:
cargo new arreglos
El siguiente paso sera ingresar al nuevo directorio creado y modificaremos el codigo generado en main.rs del directorio src con el siguiente codigo:
main.rs
fn main() {
let mut mi_arreglo: [&str; 4] = ["","","",""];
mi_arreglo[0] = "Lovecraft";
mi_arreglo[1] = "Poe";
mi_arreglo[2] = "Barker";
mi_arreglo[3] = "King";
println!("{}, {}, {}, {}", mi_arreglo[0],
mi_arreglo[1],
mi_arreglo[2],
mi_arreglo[3]);
}
Mas adelante veremos mejores metodos para poder procesar un arreglo pero por el momento vamos a verlo de esta manera, en este caso primero crearemos un array vacio de cuatro elementos a su vez de tipo String, para evitar errores o avisos al momento de compilarlo se deben agregar los cuatro elementos vacios, luego agregaremos un valor para cada posicion del array, tomemos el primer caso:
mi_arreglo[0] = "Lovecraft";
Observen que es como todo lenguaje de programacion, ya que entre los dos corchetes pasaremos la posicion donde lo agregaremos y al igual que todos los lenguajes, a excepcion de Lua, la primera posicion sera cero, luego le pasamos el valor, una vez realizado en cada posicion lo siguiente sera mostrarlo, en otro post hablaremos mas a fondo sobre println pero aqui lo comentaremos por arriba, en este caso debemos agregar una llave por cada posicion del array, lo siguiente sera pasar cada una de las posiciones del array y para ello usaremos el nombre del array seguido de los corchetes con cada posicion dentro, vamos a compilarlo y ver su salida:
tinchicus@dbn001vrt:~/lenguajes/rust/arreglos$ cargo build; cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.02s
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target/debug/arreglos`
Lovecraft, Poe, Barker, King
tinchicus@dbn001vrt:~/lenguajes/rust/arreglos$
Como podemos ver funciona perfectamente dado que al final tenemos los cuatro datos que agregamos, les recuerdo que esta es la forma mas basica de trabajar y mas adelante haremos cosas mas practicas, veamos algunas caracteristicas de este tipo de variable:
- Son simples de crear
- Tienen un tamaño fijo y no puede ser incrementado
- El contenido en el array siempre debe ser del mismo tipo
- De manera predeterminada son inmutables
Y si bien la primera caracteristica es muy importante, el inconveniente viene con la segunda dado que al tener un tamaño fijo el lenguaje esta constantemente chequeando por si nos pasamos del tamaño de nuestro array para evitar errores o bugs.
En resumen, hoy hemos visto arrays, que son, como se diferencian con respecto a las variables comunes, cual es la practicidad que nos provee, hemos visto un ejemplo simple pero poco practico para ver como trabaja en un codigo y por ultimo algunas caracteristicas de este, 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
