【发布时间】:2020-07-25 20:36:43
【问题描述】:
我刚刚遇到了为我不拥有的类型实现我不拥有的特征的问题。然后我用谷歌搜索了确切的How do I implement a trait I don't own for a type I don't own? 问题。
让我感到困惑的是这种限制背后的动机。我来自 Scala,在那里可以有一个外部类型的外部类型类实例。
为什么 Rust 会限制这一点?
【问题讨论】:
-
基于意见,但假设有一个情况,板条箱 A 和板条箱 B 都为类型
C::foo实现了一个特征D::Bar,该选择哪个? -
@AlexLarionov 有道理。
-
据我记得,一些参与 Rust 设计的人对 Haskell 的体验非常糟糕。在 Haskell 中,您可以为现有类型定义现有类型类,一些包会这样做,这会导致难以理解的错误和错误。