Nelle mie recenti avventure in Scala , ho trovato case classes una valida alternativa alle enumerazioni quando ho bisogno di includere un po 'di logica o più valori con loro. Spesso mi trovo a scrivere strutture che assomigliano a questo, tuttavia:
object Foo{
case class Foo(name: String, value: Int, other: Double)
val BAR = Foo("bar", 1, 1.0)
val BAZ = Foo("baz", 2, 1.5)
val QUUX = Foo("quux", 3, 1.75)
}
Sono principalmente preoccupato per la denominazione dell'oggetto e la classe del caso. Dal momento che sono la stessa cosa, finisco con Foo.Foo
per arrivare alla classe interna. Sarebbe saggio nominare la classe del caso qualcosa sulla falsariga di FooCase
? Non sono sicuro che la potenziale ambiguità potrebbe compromettere il sistema dei tipi se devo fare qualcosa con sottotipi o ereditarietà.