审查这个生成的商品汇总辅助函数。
统计商品 ID,保留首次出现顺序;遇到空 ID 时返回包含其索引的错误;计数时不要重复克隆相同 ID,也不要产生输出。
Rust
use std::collections::HashMap;
fn summarize(ids: &[String]) -> Result<Vec<(String, usize)>, String> {
let mut counts: HashMap<String, usize> = HashMap::new();
for (index, id) in ids.iter().enumerate() {
if id.is_empty() {
println!("empty product at {index}");
continue;
}
*counts.entry(id.clone()).or_insert(0) += 1;
}
let mut rows: Vec<_> = counts.into_iter().collect();
rows.sort_by(|left, right| left.0.cmp(&right.0));
Ok(rows)
}
生成代码仅作示例,不代表任何特定模型