So drucken Sie von structs und arrays?
Gehen scheint, um drucken zu können, structs und arrays direkt.
struct MyStruct {
a: i32,
b: i32
}
und
let arr: [i32; 10] = [1; 10];
- Rost hat eine andere Philosophie als Gehen: wo Gehen ist "Batterien", Rost "nicht für das bezahlen, was Sie nicht verwenden". So, wenn Sie drucken möchten
MyStruct
Sie bitten, den compiler um den code zu drucken (oder den code selbst). - das ist eigentlich die richtige Antwort (mit einem großen Kontext, in Beziehung zu Gehen). Post und ich werde upvote.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Sie implementieren möchten, die
Debug
Merkmal auf Ihre Struktur. Mit#[derive(Debug)]
ist die einfachste Lösung. Sie können dann drucken Sie es mit{:?}
:Debug
Eigenschaft ist ist bereits umgesetzt für viele Arten, einschließlich arrays von 0 bis 32 items, sowie Scheiben undVec
jeder Länge. Das wichtigste ist, dass das Element im container muss sich auch umsetzenDebug
.#[derive(Debug)]
wie gezeigt in der obigen Antwort, beim Austausch von{:?}
mit{:#?}
imprintln!
makro. Details finden Sie in Rost-Buch Ch-5Als mdup sagt, die Sie verwenden können
Debug
, aber Sie können auch dieDisplay
Merkmal. Sie können erstellen Sie eine benutzerdefinierte Ausgabe:Shell:
Weitere Informationen finden Sie in der
fmt
- Modul-Dokumentation.Eigentlich nur
{:?}
ist ausreichend.Debug
Merkmal.Da hier niemand explizit Antworten für arrays, drucken aus einem array müssen Sie die
{:?}
auch verwendet, um print-debug-AusgabeJedoch arrays, wo
length > 32
wird mit einem Fehler beendet:Mehr arrays können ausgedruckt werden mit dem Ansatz aus dieser Antwort: Implementierung der Debug Eigenschaft für large-array-Typ