Ответ 1
.collect()
является общим в том, что он производит, и он может создать String
для вас!
let s = "abc".chars().collect::<String>();
Признак FromIterator
определяет, какие элементы вы можете собрать в какую коллекцию, а среди разработчиков вы можете найти String
дважды:
impl FromIterator<char> for String
impl<'a> FromIterator<&'a str> for String
Оба итератора char
и &str
могут быть собраны до String
.