这是简化的代码:
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定义了此限制?如何在结构类型中使用用户定义的值容器?