Классы значений как члены структурного типа - PullRequest
4 голосов
/ 13 июня 2019

Вот упрощенный код:

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 определяет это ограничение? Как я могу использовать пользовательское значение vlass в структурных типах?

...