4

这是简化的代码:

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 = 新 { val f: 值 = v }

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

4

0 回答 0