【发布时间】:2023-02-01 00:09:35
【问题描述】:
我试图编写一个程序来执行以下操作:获取给定字符串s 的所有后缀,然后按照字典顺序对这些后缀进行排序。
这是我的代码:
let mut sorted = (0..s.len())
.map(|i| (i, &s[i..s.len()]))
.collect::<Vec<(usize, &str)>>()
.sort_by_key(|k| k.1);
for elem in sorted {
println!("{} {}", elem.0, elem.1);
}
Rust 编译器报错:
error[E0277]: `()` is not an iterator
--> src/lt05.rs:7:17
|
7 | for elem in sorted {
| ^^^^^^ `()` is not an iterator
|
= help: the trait `Iterator` is not implemented for `()`
= note: required for `()` to implement `IntoIterator`
谁能解释一下这段代码有什么问题?
【问题讨论】:
-
因为
sort_by_key是就地操作 -
@AbdulNiyasPM 但我应该如何修复错误?
-
这回答了你的问题了吗? How do I sort an array?
标签: rust