Lectura de la Scala por ejemplo el libro y no hay este ejemplo cuando Martin explica tipo límites en la página 54:Scala por ejemplo: parámetro de tipo de rasgo con error de límites de contexto?
trait Set[A <: Ordered[A]] {
def incl(x: A): Set[A]
def contains(x: A): Boolean
}
y
trait Set[A <% Ordered[A]] ...
aún más en la página 55. También dice que la <:/<% es el único cambio requerido para Trait Set para demostrar las posibilidades de límite de tipo.
Sin embargo, cuando repito el ejemplo con mi propio código, el IDE se queja de que los rasgos pueden no tener límites vista, solamente el tipo límites. Cambiar la palabra clave de rasgo a clase abstracta o cambiar la vista vinculada para escribir ayuda vinculada. ¿Es esto un error en el libro?
hubo un cambio en la especificación después de "Scala por ejemplo" fue escrito. Ver esta discusión [] (http://scala-programming-language.1934581.n4.nabble.com/scala-view-bound-in-trait-td1991172.html) –
Gracias por señalar! Sin embargo, creo que no es bueno que la complejidad de la implementación influya en el lenguaje. No hay una explicación lógica de por qué los rasgos pueden no tener límites superiores. – noncom
Los rasgos pueden tener límites superiores. No pueden tener límites de contexto y vista, porque estos son parámetros de constructor y los rasgos no pueden tener parámetros de constructor. –