6
Rustで文字列の最初の文字を大文字にするのはなぜそれほど複雑なのですか?
の最初の文字を大文字にしたいのですが&str。それは単純な問題であり、私は単純な解決策を望んでいます。直感は私にこのようなことをするように言います: let mut s = "foobar"; s[0] = s[0].to_uppercase(); ただし&str、このようにsにインデックスを付けることはできません。私がそれを行うことができた唯一の方法は、過度に複雑に思えます。を&strイテレータに変換し、イテレータをベクトルに変換します。ベクトルの最初の項目を大文字にします。これにより、イテレータが作成され、インデックスが作成されますOption。これをアンラップして、大文字の最初の文字を取得します。次に、ベクトルをイテレータに変換しString、それをに変換し、それをに変換します&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; これよりも簡単な方法はありますか?もしそうなら、何ですか?そうでない場合、なぜRustはこのように設計されているのですか? 同様の質問