Ich möchte nur ein Leerzeichen getrennt String
der Argumentvariablen von std::env::args()
erhalten, die ich die fold
Funktion wie diese zu schaffen habe mit:Was ist ein idiomatischer Weg, um einen Iterator getrennt durch Leerzeichen in Rust zu drucken?
std::env::args()
.fold("".to_string(), |accum, s| accum + &s + " ")
jedoch diese am Ende einen zusätzlichen Raum schafft, die unerwünscht ist. Ich versuchte, die truncate
Funktion, aber truncate
keine String
zurückkehrt, ändert nur die bestehenden String
, und auch dies würde die Schaffung eines Zwischen Bindung erfordern, um die String
‚s len()
Aufruf zu verwenden, um festzulegen, wie lange die abgeschnittenen String
sein sollte (die selbst würde eine Zwischen Bindung aufgrund Rust aktuellen lexikalischer Entlehnung Regeln erfordern glaube ich!)
Ich glaube, wenn Sie den Lambda-Ausdruck auf 'accum +" ändern "+ & s", der nachgestellte Raum wird verschwinden. – Ferruccio
@Ferruccio Dies führt nur zu einem führenden Leerzeichen, ich habe es nur so gemacht, weil ein schließendes Leerzeichen oft unsichtbar ist, während ein führendes Leerzeichen in der Formatierung zu sehen ist. Ich hätte angeben sollen, führende und nachstehende Leerzeichen sind jedoch unerwünscht. –
Es gibt eine ['intersperse '] (https://bluss.github.io/rust-itertools/doc/itertools/trait.Itertools.html#method.intersperse) -Methode in' itertools', wenn Sie eine hinzufügen möchten Abhängigkeit. Ich denke nicht, dass es einen einfachen Weg gibt, dies mit 'std' zu tun. – Dogbert