Rust添加.sort_by产生错误:预期结构' Vec ',发现'()'



给定下面的编译代码,

let alerts : Vec<Alert> = serde_json::from_value::<Vec<Alert>>(json) 
.unwrap();

为什么添加.sort_by_key会导致错误

expected struct `Vec`, found `()`
生成错误的代码是,
let alerts : Vec<Alert> = serde_json::from_value::<Vec<Alert>>(json)
.unwrap()
.sort_by_key( |e| e.pub_millis );

来自Vec的文档:

pub fn sort_by_key<K, F>(&mut self, f: F) where
F: FnMut(&T) -> K,
K: Ord

这个函数没有返回值,而是对切片进行就地排序。因此,它不能作为链式函数使用,必须给它一个可变的值。如果您希望警报变量是不可变的,那么可以使用临时可变性习惯用法,使其可变的时间只够对其进行排序。https://rust-unofficial.github.io/patterns/idioms/temporary-mutability.html

最新更新