Есть несколько вопросов, которые, похоже, касаются одной и той же проблемы, с которой я сталкиваюсь. Например, см. здесь и здесь. В основном я пытаюсь создать String
в локальной функции, но затем верну его как &str
. Нарезка не работает, потому что срок службы слишком короткий. Я не могу использовать str
непосредственно в функции, потому что мне нужно ее динамически строить. Тем не менее, я также предпочел бы не возвращать String
, так как природа объекта, в который он входит, является статическим после его создания. Есть ли способ получить торт и съесть его?
Здесь минимальное некомпилируемое воспроизведение:
fn return_str<'a>() -> &'a str {
let mut string = "".to_string();
for i in 0..10 {
string.push_str("ACTG");
}
&string[..]
}