den folgenden Code gegeben (was nicht kompiliert):Haben Rust-Sammlungen die Fähigkeit, die Daten zu besitzen, die sie speichern?
fn main() {
let mut v = vec!();
{
let name = "Bob the Builder".to_string();
v.push(&name);
}
for m in &v{
println!("{}", m);
}
}
ich eine Variable erstellt haben zu einer Rust String
Art Bindung, die innerhalb des ersten Satzes von geschweiften Klammern den Gültigkeitsbereich verlassen wird. Gibt es eine Möglichkeit, die Eigentumsrechte der Zeichenfolge irgendwie zu verschieben, so dass der Vektor sie besitzt?
Dies ist ein willkürliches Beispiel, aber ich versuche nur zu verstehen, ob dieses Konzept möglich ist.
Ich weiß bereits, dass wenn ich ein String-Literal dies als eine statische Zeichenfolge, die für die gesamte Lebensdauer der App bestehen wird und daher dieser Code würde kompilieren würde, aber ich versuche nur zu verstehen, ob eine Sammlung in Rust kann Daten besitzen. Ich weiß, Rust ist nicht Objective-C, aber Objective-C verfügt über Sammlungen mit der Fähigkeit, ihre Daten zu behalten.
Dies ist einer dieser doh! Momente ... wenn du es so sagst ... macht Sinn. Danke für die Hilfe. –
@RalphCaraveo Wenn ich neue Sprachen lerne, empfehle ich immer [gummiente debuggen] (http://www.rubberduckdebugging.com/). – Kroltan