Sono nuovo di ruggine ed ho incontrato un problema simile al seguente un paio di volte:Come trasferisco la proprietà delle stringhe?
fn main() {
let mut as_str: Vec<&String> = Vec::new();
for i in [1, 2, 3, 4, 5].iter() {
let i_str = i.to_string();
as_str.push(&i_str);
}
}
da cui si ricava il seguente errore:
<anon>:6:22: 6:27 error: `i_str` does not live long enough
<anon>:6 as_str.push(&i_str);
^~~~~
Come faccio a trasferire la proprietà della stringa il vettore (non voglio copiare)? Ho bisogno di una vita? Dovrebbe essere una str o una stringa (supponendo che non vogliano mutare gli elementi stessi nel vettore)?
Giusto per essere sicuri, la stringa viene spostata e non copiata in quel caso corretta? Si deve copiare esplicitamente in Rust (diversamente dal C++)? – gnash
@gnash Sì, è vero. – emlai
'let as_str: Vec <_> = (1..6) .map (| i | i_to_string()). Collect()' è un altro modo per ottenere ciò che OP è dopo. – Akavall