Es liegt an einer Einschränkung des Formatierungssystems.
Intern fügt println!
(genauer gesagt, format_args!
) seine Argumente ein Ein Array, bei dem jedes Argument mit seinem Formatierungstyp verknüpft wird. Zum Beispiel der folgende Ausdruck:
erzeugt dieses Argumentarray:
%Vor% (Übrigens können Sie die vollständige Erweiterung mit rustc -Z unstable-options --pretty=expanded main.rs
sehen)
Dies erklärt, warum Ihr Beispiel nicht funktioniert: Wenn Sie möchten, dass das erste Argument ( __arg0
) beide String
und Show
ist, wo würden Sie den zweiten Typ eingeben ?
Es gibt keine Möglichkeit, diese Beschränkung aufzuheben, ohne das System zu sehr zu verkomplizieren, so dass wir es leider nur umgehen müssen.
Es verbietet Ihnen nicht, denselben Wert erneut zu verwenden:
%Vor%funktioniert gut.
Das Problem ist, was die Fehlermeldung sagt:
%Vor%Sie versuchen, dasselbe Argument wie zwei verschiedene Typen zu verwenden, und das ist nicht cool. Ich bin nicht 100% sicher, warum es nicht ist, aber es ist nicht.
Tags und Links rust