Warum wird der erste Buchstabe einer in Rust verwickelten Zeichenfolge in Großbuchstaben geschrieben?

Ich möchte den ersten Buchstaben eines @ groß schreib&str. Es ist ein einfaches Problem und ich hoffe auf eine einfache Lösung. Intuition sagt mir, ich soll so etwas machen:

let mut s = "foobar";
s[0] = s[0].to_uppercase();

Aber&strs kann nicht so indiziert werden. Der einzige Weg, den ich bisher geschafft habe, scheint zu kompliziert zu sein. Ich konvertiere das&str in einen Iterator umwandeln, den Iterator in einen Vektor umwandeln, in Großbuchstaben das erste Element im Vektor, wodurch ein Iterator erstellt wird, in den ich indexiere, wodurch ein @ erstellt wiOption, das ich auspacke, um den oberen Anfangsbuchstaben zu erhalten. Dann konvertiere ich den Vektor in einen Iterator, den ich in ein @ konvertierString, das ich in ein @ konvertie&str.

let s1 = "foobar";
let mut v: Vec<char> = s1.chars().collect();
v[0] = v[0].to_uppercase().nth(0).unwrap();
let s2: String = v.into_iter().collect();
let s3 = &s2;

Gibt es einen einfacheren Weg als diesen und wenn ja, welchen? Wenn nicht, warum ist Rust so konstruiert?

Ähnliche Frage

Antworten auf die Frage(6)

Ihre Antwort auf die Frage