Как работать со строками в Rust?
Как правильно работать со строками в Rust? Проблемы с владением и преобразованиями
Всем привет! Я новичок в Rust и столкнулся с трудностями при работе со строками. В других языках (Python, Java) строки обычно ведут себя интуитивно: их можно конкатенировать, изменять, передавать в функции без лишних сложностей. В Rust же я постоянно натыкаюсь на ошибки компиляции, связанные с владением, заимствованием и типами String vs &str.
Конкретная проблема: Мне нужно прочитать имя пользователя из stdin, затем добавить к нему приветствие и вывести результат. Я попробовал следующий код:
use std::io;
fn main() {
let mut name = String::new();
io::stdin().read_line(&mut name).expect("Failed to read line");
let greeting = "Hello, " + name; // Ошибка!
println!("{}", greeting);
}Компилятор выдает ошибку: cannot add `String` to `&str`. Я понимаю, что проблема в типах, но не до конца понимаю, как правильно конкатенировать &str и String. Пробовал использовать format! — работает, но хочется понять, почему не работает обычное сложение. Также неясно, как лучше передавать строки в функции: когда использовать &str, а когда String? Ожидаю получить объяснение по работе с владением, заимствованием и основным методам строк (push_str, to_string, as_str). Буду благодарен за примеры с пояснениями.
Ответов пока нет.
Войдите чтобы оставить ответ