我可以以某种方式修改 '&' 数组吗?

问题描述

所以基本上我有这个:

let mut sortednumbers = numbers.clone();
    
sortednumbers.sort_by(|a,b| b.rational.cmp(&a.rational));

其中 numbers&[..]

我想以某种方式对 sortednumbers 向量进行排序,但引用不是可变的。有什么想法吗?

解决方法

如果 numbers 是一个 &[T],那么 numbers.clone() 也是一个 &[T],指的是同一个数组。您需要的是 numbers.to_vec()numbers.to_owned(),它们为您提供一个 Vec<T>,然后您可以对其进行修改。