Leggendo la Scala con l'esempio del libro e non v'è questo esempio quando Martin spiega digitare limiti a pagina 54:Scala per esempio - parametro del tipo di tratto con errore di contesto?
trait Set[A <: Ordered[A]] {
def incl(x: A): Set[A]
def contains(x: A): Boolean
}
e
trait Set[A <% Ordered[A]] ...
ulteriormente a pagina 55. Dice anche che il <:/<% è l'unica modifica richiesta per il tratto Set per dimostrare le possibilità di delimitazione del tipo.
Tuttavia, quando ripeto l'esempio con il mio codice, l'IDE si lamenta che i tratti NON possono avere limiti di visualizzazione, solo limiti di tipo. La modifica della parola chiave tratto in classe astratta o modifica della vista associata al tipo associato aiuta. È un errore nel libro?
c'è stato un cambiamento nelle specifiche dopo che è stato scritto "Scala per esempio". Vedi [questa discussione] (http://scala-programming-language.1934581.n4.nabble.com/scala-view-bound-in-trait-td1991172.html) –
Grazie per la segnalazione! Tuttavia penso che non sia positivo che la complessità di implementazione influenzi il linguaggio. Non vi è alcuna spiegazione logica del motivo per cui i tratti potrebbero non avere limiti superiori. – noncom
I tratti possono avere limiti superiori. Non possono avere limiti di contesto e vista, perché questi sono parametri del costruttore e i tratti non possono avere parametri di costruzione. –