Archive for Juliol 2021
Com obtenir el primer caràcter d’un String en Rust
El següent codi et permet mostrar el primer caràcter d’un String
/*
* Programa que mostra el primer caràcter d'un String
*/
fn main() {
let cadena = "hola";
let caracter: char = cadena.chars().nth(0).unwrap();
println!("El primer caràcter de \"{}\" és '{}'", cadena, caracter);
}
La clau està en input.chars().nth(0)
. Els Strings de Rust no poden ser indexats directament com a Python o Java (on faríem simplement cadena[0]
o
), per tant, els hem de convertir primer en un iterable de caracters i demanar-ne el primer element (cadena
.charAt(0)nth(0)
)
Encara hi ha més. La funció nth() no retorna directament un caràcter sinó l’enumerat Option
. Amb això ens obliga a ser conscients que podria no haver-hi cap caràcter al String. De fet, això no és possible doncs sabem que cadena
conté "hola"
, però això nth()
no ho pot saber. Com que nosaltres sí ho sabem, cridem a unwrap() que simplement extraurà el caràcter de l’opció Ok(ch)
de Option
.
Per cert, el títol d’aquesta entrada no és precís. El codi en realitat està extraient el caràcter d’un &str
. Amb tot, el codi funciona igual si cadena
és inicialitzada com a String.
let cadena = String::from("hola");