作为结构类型成员的值类

xia*_*982 5 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)
Run Code Online (Sandbox Code Playgroud)

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

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

我不明白。既然Int也是一个值类,为什么Int可以用作成员,而我的值类Value却不能?为什么scala定义了这个限制?如何在结构类型中使用用户定义的值vlass?