2016-08-19 4 views
2

Ich verwende {:?} zum Debuggen Zweck.Was bedeuten `:` und `?` In `{:?}`

Aber ich weiß nicht (oder vielleicht erinnere ich mich einfach nicht) was ist die Bedeutung von : und ? einzeln. Gibt es einen Hinweis dafür?

+1

Natürlich gibt es Dokumentation. Und sehr detailliert. Genau dort, wo es sein sollte: im Modul [std :: fmt] (https://doc.rust-lang.org/std/fmt/index.html). –

+1

Ok vielleicht sollte ich meine Antwort aktualisieren. Meine Frage ging nicht um "wie zu verwenden?" aber ungefähr: "'? 'bedeutet ...". Nicht sicher, es ist klar genug, tut mir leid. –

+0

Die Dokumentation [sagt] (https://doc.rust-lang.org/std/fmt/index.html#formatting-traits) was die '' '- und andere Formatierungszeichen bedeuten. –

Antwort

5

Der : trennt den Parameterindex von der Formatspezifikation. Die {} kann einen Parameterindex, z.B. Wenn Sie ein Format angeben möchten, müssen Sie es mit :, z. {0:?}. Und ? gibt an, sollte diese Formatierung anstelle des std::fmt::Display Standard mit der std::fmt::Debug Eigenschaft erfolgen (andere Zeichen andere Merkmale angeben, zum Beispiel x für Hex, e für LowerExp etc.).

+0

Ok danke. BTW Ich verstehe nicht, warum ein Fragezeichen für "debuggen" verwendet wird. Mit anderen Worten, ich suchte nach einer Antwort darüber, warum ich "?" Und nicht "etwas anderes" wählen sollte? (nicht sicher, die Beziehung zwischen "debug" und "Fragezeichen" zu verstehen) –

+0

Aber vielleicht ist es nur eine dumme Frage, sorry, dass ich meinen Verstand (und meine Hände) nicht kontrollieren kann! –

+2

@ rap-2-h: Nun, ein unbenutztes Symbol wurde benötigt, '?' War ungenutzt ... und dann wieder, beim Debuggen fragt man sich oft: "Welchen Wert hat es?" deshalb finde ich das Fragezeichen durchaus passend. –