Макрос println! позволяет вывести строку в поток stdout;
// println!("Hello there!\n");
// раскрывается в такой код:
usestd::io::{self,Write};io::stdout().lock().write_all(b"Hello there!\n").unwrap();
Макрос dbg!() позволяет вывести переменные и структуры в поток stdout;
split()
Метод split: разбивает строку на части по указанному разделителю и возвращает итератор. Разделитель может быть символом, строкой или даже пробелом. В том числе можно делить по нескольким символам разом:
lettext=String::from("the_stealth-warrior");letparts=text.split(['-','_']).collect::<Vec<&str>>();// collect собирает в коллекцию типа вектор
forpartinparts{println!("{}",part);
Другие методы разбивки
split_whitespace()
Разбивает по любым пробельным символам (пробелы, табы, переносы строк).
Нахождение закономерностей в структурах со строками
В примере мы передаём вектор из строк. Далее, анализируем его по частям:
fnlikes(names: &[&str])-> String{matchnames{[]=>"no one likes this".to_string(),[a]=>format!("{} likes this",a),[a,b]=>format!("{} and {} like this",a,b),[a,b,c]=>format!("{}, {} and {} like this",a,b,c),[a,b,other@..]=>format!("{}, {} and {} others like this",a,b,other.len()),}}