当前位置: 首页 > 知识库问答 >
问题:

如何实现任何可变性的特性?

栾耀
2023-03-14

突变性可以是性状中的一个通用参数吗?我想为一个类型的可变和不可变变体实现一个特性,而不必复制

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 {…}

共有1个答案

慕凌
2023-03-14

突变性可以是性状中的一个通用参数吗?

没有^_^

下面是关于这个问题的一些详细讨论(内部,Reddit)。

我认为,一般来说,人们认识到目前的状况并不理想,但目前也没有太大的限制。人们担心它将如何实施以及各种方法的合理性。有些人想知道,如果把它们添加到锈菌中,高等种类(HKT)是否能解决这个问题。

另见:

  • 如何避免在Rust中为可变和不可变引用编写重复的访问器函数
 类似资料:
  • 就我的理解而言,在Kotlin中委托实现的想法是为了避免出现类似于以下内容的代码: 相反,我们可以编写以下代码,该代码也应该执行相同的操作: 现在,我希望是一个可变变量,即我的代码如下所示: 因此,如果Id自己将每个抽象方法委托给,就像在第一个示例中一样,更改的值确实会更改方法的行为。但是,上面的代码编译成这段Java代码: 因此,显然,Kotlin编译器不只是使用字段,而是决定在创建时将其复制到

  • 我想在main函数中打印Tweet数据类型的实例,但摘要特征不实现调试特征。有没有办法在特征或任何工作上实现特征。取消注释第二行并注释第一行将工作,因为字符串类型实现了显示特征。 error[E0277]: 未实现 -- 错误:由于以前的错误而中止 有关此错误的更多信息,请尝试。错误:无法编译。 要了解更多信息,请使用--verbose再次运行该命令。

  • (1)什么是可重入性 一个线程持有锁时,当其他线程尝试获取该锁时,会被阻塞;而这个线程尝试获取自己持有锁时,如果成功说明该锁是可重入的,反之则不可重入。 (2)synchronized是如何实现可重入性 synchronized关键字经过编译后,会在同步块的前后分别形成monitorenter和monitorexit两个字节码指令。每个锁对象内部维护一个计数器,该计数器初始值为0,表示任何线程都可

  • a、b默认都可选,但当a有值时,让b成为必填项。 应该如何实现?

  • 我不知道如果没有其他变量告诉我哪个更大,我怎么能比较两个可比较的对象。问题是:创建一个名为Max的类,该类提供一个名为Max的类方法。Max将两个参数用于可以比较的对象,即实现如上所示的Java Compariable接口的对象。它返回对较大值的引用。如果两个对象相等,则应返回第一个对象。实现的可比性取决于每个类,您的方法将在多个不同类型的对象上调用。 它在接口中提供了int compareTo(

  • 问题内容: 我想继承不可变类型或实现自己的一种,其行为类似于以下控制台会话所示: 毫不奇怪,对象没有方法,但应用于对象并不会导致错误,相反,它显然会创建一个新对象,并且还以某种方式神奇地将其重新分配为扩充赋值语句中给出的名称。 是否可以创建一个内置的不可变类的用户定义类或子类,并且可以这样做? 问题答案: 使用的返回值。您无需返回要添加到的对象;您可以创建一个新的并将其返回。实际上,如果对象是不可