值类作为结构类型成员

时间:2019-06-13 11:01:19

标签: scala structural-typing value-class

这是简化的代码:

class Value(val value: Int) extends AnyVal

val v = new Value(1)

val x = new { val f: Int = v.value }
println(x.f)

val y = new { val f: Value = v }
println(y.f)

错误:结构优化中的结果类型可能未引用用户定义的值类

val y = new {val f:Value = v}

我不明白。由于Int也是一个值类,为什么Int可以用作成员,但我的值类不能使用Value?为什么Scala定义了此限制?如何在结构类型中使用用户定义的值容器?

0 个答案:

没有答案