Rust语言中如何将字符串"Hi bro"转换为字符数组?
Rust字符串转字符数组的正确实现
你当前代码里用collect::<String>()是把字符迭代器重新拼接成了字符串,这和你要的字符数组完全不是一回事。
正确的做法是把迭代器收集到Vec<char>中,Rust里的Vec<char>就对应你想要的字符数组:
let str = "Hi bro"; // 方式1:显式标注变量类型 let some_str_arr: Vec<char> = str.chars().collect(); // 方式2:用 turbofish 语法指定目标类型 let some_str_arr = str.chars().collect::<Vec<char>>();
简单解释:str.chars()会生成一个遍历字符串中所有Unicode字符的迭代器,collect方法可以把这个迭代器的元素收集到实现了FromIterator trait的容器里,Vec<char>正好满足这个要求,最终得到的就是类似['H', 'i', ' ', 'b', 'r', 'o']的结构。
内容的提问来源于stack exchange,提问作者MubleBuble
相关产品推荐
相关产品推荐

