scala - 通过砖墙驱动单例类型

标签 scala types path-dependent-type

这是一个非常精简的版本:

case class Brickwall[A](otherSide: A)
trait Monoman { def me(m: this.type): Unit }

def test(m: Monoman): Unit = m.me(Brickwall(m).otherSide)

-> error: type mismatch;
 found   : Monoman
 required: m.type

愚蠢的砖墙不让我通过。有什么想法可能吗? secret 的斯卡拉隧道效应?希望...

最佳答案

据我所知,Scala 编译器拒绝推断路径依赖类型,所以一点类型注释会有所帮助:

def test( m: Monoman ) { m.me( Brickwall[m.type]( m ).otherSide )}

关于scala - 通过砖墙驱动单例类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5575030/

相关文章:

mongodb - 无法将数组从 MongoDB 传递到需要向量的 Spark 机器学习函数

scala - 在不同的类中访问 Spark 广播变量

scala - 从向量到各个变量的多重赋值

vba - 如何在VBA Excel中将文本更改为数字

scala - 关于 this.type 的令人惊讶的等价和不等价

scala - 具有依赖类型的工厂方法

scala - df.SaveAsTable和spark.sql(创建表..)之间的区别

generics - 使用类似泛型构造的子类型

typescript - 我可以在 TypeScript 中创建一个对每个键值对都是类型安全的键值字典吗?

Scala:仅使用指定的路径相关类型参数调用函数