So erstellen Sie eine Rost-struct mit string-member?
Möchte ich die Mitglieder, die im Besitz der struct. Sorry für die einfache Frage, aber ich war nicht in der Lage zu finden, ein Beispiel. Ich bin auf der Suche nach der richtigen Deklaration einer struct und einer Instanziierung Beispiele.
- Verwenden
String
und sich bewusst sein, dass die Schaffung einerString
aus&str
über.to_string()
beinhaltet eine heap-Zuweisung + kopieren Sie die gesamte Zeichenfolge.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der string im Besitz des struct, dann sollten Sie
String
. Alternativ können Sie eine&str
mit einer statischen Lebensdauer (D. H., die Lebensdauer des Programms). Zum Beispiel:Wenn die Lebensdauer der Zeichenfolge unbekannt ist, dann können Sie parametrieren
Foo
mit einer Lebensdauer:Siehe auch:
Wenn Sie nicht sicher sind, ob der string gehört oder nicht (nützlich für die Vermeidung von Zuordnungen), dann können Sie
leihen::Kuh
:Beachten Sie, dass die
Cow
Typ parametrisiert ist, ein Leben lang. Die Lebensdauer bezieht sich auf die Lebensdauer der ausgeliehen Zeichenfolge (D. H., wenn es eineBorrowed
). Wenn Sie eineCow
, dann können Sieborrow
und erhalten Sie einen&'a str
, mit denen Sie zu tun normalen string-Operationen, ohne sich Gedanken darüber, ob die Verteilung der neuen string oder nicht. In der Regel der explizite Aufruf vonborrow
ist nicht erforderlich, da deref Zwang. NämlichCow
Werte dereferenzieren, um Ihre geliehenen form automatisch, so&*val
woval
TypCow<'a, str>
produzieren eine&str
.