【发布时间】:2019-06-25 21:22:26
【问题描述】:
我搜索了一下,找到了this Reddit post from four years ago,但除了不安全的代码:
fn find_mut <'a> (&'a mut self, elem: &T) -> Option<&'a mut Node<T>> {
unsafe{std::mem::transmute(self.find(elem))}
}
或宏,我想不出任何方法来做到这一点。
问题的替代重述:
- 使函数泛型而不是可变性。
- 可变性修饰符多态性。
现在有办法吗?
动机,以防万一这是另一个 XY 问题:我想编写一个函数来处理引用向量,读取它们但不修改它们,并且我想在我将使用这些函数的情况下有&Ts 和&mut Ts。
【问题讨论】:
-
请注意,将不可变引用转换为可变引用总是不安全,don't do it ever。
标签: generics reference rust immutability mutability