Rust如何用标准库实现字符串字符排序,解决E0599编译报错
问题原因
Rust 中的sort_unstable是原地排序方法,没有返回值(返回单元类型()),你现在的写法把它放在链式调用里,调用完sort_unstable()后拿到的是(),自然不存在iter方法,触发编译报错。
修正方案
修正后的代码如下:
fn sort_word(word: &str) -> String { let mut chars: Vec<char> = word.chars().collect(); chars.sort_unstable(); chars.into_iter().collect() }
修正说明
- 收集字符得到的向量需要声明为
mut可变类型,才能调用原地排序方法 - 排序后使用
into_iter()直接取走向量内的所有字符,不需要额外借用拷贝,直接收集为String即可,性能更优
内容的提问来源于stack exchange,提问作者Chapo
相关产品推荐
相关产品推荐

