type parameter implicitly generic for comprehension scala static

implicitly - type parameter scala



¿Qué reemplaza las variables de clase en Scala? (2)

Para amplificar en la respuesta de Thomas:

La definición del object generalmente se coloca en el mismo archivo que la clase y debe tener el mismo nombre. Esto da como resultado una única instancia de un objeto que tiene el nombre de la clase, que contiene los campos que usted defina.

En otras palabras, es un kit de construcción fácil de usar de Singleton.

En el nivel JVM, la definición del objeto realmente da como resultado la definición de una nueva clase; Creo que es el mismo nombre con un $ anexado, por ejemplo, Foo$ . En caso de que tenga que interoperar algo de esto con Java.

En Java, a veces uso variables de clase para asignar una ID única a cada nueva instancia. Yo hago algo como

public class Foo { private static long nextId = 0; public final long id; public Foo() { id = nextId; nextId++; } [...] }

¿Cómo puedo hacer esto en Scala?


Variables en el objeto complementario:

object Foo{ private var current = 0 private def inc = {current += 1; current} } class Foo{ val i = Foo.inc println(i) }