case-class

Согласно инструменту статического анализа scala-wartremover я должен поставить "final" перед каждым классом case, который я создаю: сообщение об ошибке гласит: "классы case должны быть final". Согласно scapegoat (другой инструмент статического анализа для Scala) вместо этого я не должен (сообщение об ошиб...

Я пытаюсь создать оператор match с помощью макросов, который соответствует всем подклассам данного типа. Но у меня есть проблемы с извлечением значений полей классов case. Например: sealed abstract class Foobar case class Foo(x:Int,f:Foobar) extends Foobar case class Bar(s:String, f:Foobar) extends Foobar ...

Предположим, что у меня есть некоторое дерево, построенное с использованием классов case, что-то вроде этого: abstract class Tree case class Branch(b1:Tree,b2:Tree, value:Int) extends Tree case class Leaf(value:Int) extends Tree var tree = Branch(Branch(Leaf(1),Leaf(2),3),Branch(Leaf(4), Leaf(5),6)) А теп...

Я пытаюсь использовать макросы Scala для создания карты класса case однопараметрических методов copy, причем каждый метод принимает Play Json JsValue и экземпляр класса case и возвращает обновленную копию экземпляра. Однако у меня возникают проблемы с синтаксисом макросов для возврата объекта функции. Задан...

Я видел некоторые другие проблемы, связанные с печально известной проблемой" 22 поля/параметры", которая является неотъемлемой ошибкой (особенность?) Скала в здесь и здесь. Однако, согласно этому посту в блоге , кажется, что ограничение 22 параметра в case class было зафиксировано; по крайней мере, в том, ...

Есть ли способ полагаться на методы, определенные в классе case в черте? Например, копия: следующее не работает. Хотя я не знаю почему. trait K[T <: K[T]] { val x: String val y: String def m: T = copy(x = "hello") def copy(x: String = this.x, y: String = this.y): T } case class L(val x: String, v...

Я искал в Google, чтобы найти различия между case class и class. Все упоминают, что когда вы хотите сделать сопоставление шаблонов в классе, используйте класс case. В противном случае используйте классы, а также упоминание некоторых дополнительных льгот, таких как equals и переопределение хэш-кода. Но являютс...

Если вы пишете код, который использует множество красивых, неизменяемых структур данных, классы case кажутся находкой, давая вам все следующее бесплатно только с одним ключевым словом: все неизменное по умолчанию геттеры определяются автоматически достойная реализация toString () совместимый equals () и has...

в Scala 2.8 есть ли способ перегрузки конструкторов класса? Если да, пожалуйста, поместите фрагмент, чтобы объяснить, если нет, пожалуйста, объясните, почему?...

Так вот в чем дело. Я хочу определить класс case следующим образом: case class A(val s: String) и я хочу определить объект, чтобы гарантировать, что при создании экземпляров класса значение для ' s ' всегда находится в верхнем регистре, например: object A { def apply(s: String) = new A(s.toUpperCase) }...