rust - 如何实现任何可变性的特征?

标签 rust traits mutability

可变性可以成为特征中的通用参数吗?我想为类型的可变和不可变变体实现特征,而无需复制和粘贴 impl block 。

trait Foo<T> {…}

impl<T> Foo for *const T {…}
impl<T> Foo for *mut T {…same thing again…}

一厢情愿的伪代码:

trait Foo<T> {…}

impl<T, Mutability> Foo for *Mutability T {…}

最佳答案

Can mutability be a generic parameter in traits?

没有。 ^_^

这里有一些关于此事的详细讨论(InternalsReddit)。

我认为一般来说,人们认识到当前的状态并不理想,但目前也没有受到太大的限制。人们担心它将如何实现以及各种方法的合理性。有些人想知道 Higher-Kinded Types (HKTs) 是否可以解决这个问题,是否以及何时将它们添加到 Rust 中。

另见:

关于rust - 如何实现任何可变性的特征?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28388032/

相关文章:

scala - Scala 的 "type"关键字是什么意思?

scala - 在 Scala 中有没有办法删除可变变量,或者在下面的情况下保留可变变量就可以了?

methods - 如何在 Rust 中将对象用作其自身方法的参数?

python - 类可变性

rust - 提供将 &self 转换为特征对象的方法

rust - 为什么需要这个克隆?

rust - Rust-混合使用默认宏和个人默认实现

struct - 有没有一种方法可以基于特征实现创建结构?

pointers - 指向特征的指针

rust - 在标识位置找到 `once`