Ok(true) => "Является нормальным",
Ok(false) => "Не является нормальным",
Err(m) => &format!("Error: {}", m)
};
Почему не могу так сделать?
format! создаёт строку в куче. В твоём коде строка создаётся, вовзращается ссылка на неё, а затем, т. к. значение выходит из области видимости, строка уничтожается. Если бы этот код компилировался — остался бы с повисшим указателем.
Проще сделать "Является нормальным".to_string(), и format использовать без ссылки. Можно оптимизировать, читай https://habr.com/ru/post/282708/ . Тогда "Является нормальным" будет borrowed, а format - owned. Но это уже разминка для ума. Если у тебя там не 1Mrps, то забей и просто приведи все к string::String (который можно создать из &str методом .to_string())
Обсуждают сегодня