Строка как результат функции в Rust
Функция может отдать значение типа String. Тогда владение
строкой переходит к вызывающему, и дальше он может менять текст
или отдавать его дальше.
Соберем приветствие внутри блока:
fn func(name: &str) -> String {
let mut text = String::from("hello, ");
text.push_str(name);
text
}
fn main() {
let msg = func("ann");
println!("{}", msg);
}
На экране "hello, ann". Переменная в точке входа
становится хозяином готовой строки.
Можно вернуть литерал, превращенный в владельца:
fn func() -> String {
String::from("ok")
}
fn main() {
let s = func();
println!("{}", s);
}
Дано имя:
let city = "oslo";
Напишите блок, который отдает строку "city oslo" с
подставленным city, и выведите ее.
Дан следующий код:
fn func() -> String {
String::from("report")
}
Запишите результат в head и выведите длину head.
Скажите, кто владеет строкой после присваивания результата переменной в точке входа.