nella linearizzazione del tipo scala spiega il primo passo nell'algoritmo [chiuso]

-1

Ho visto questa spiegazione

Dove il primo passo è:

"start building a list of types, the first element is the type we’re linearizing right now,"

tuttavia il risultato è:

// start with D1:
B with C with <D1>

Non capisco. Iniziamo con D1 perché è in <> ? perché è C with D1 e non D1 with B . Non capisco cosa sta succedendo lì, puoi spiegare per favore?

    
posta Jas 11.11.2014 - 12:11
fonte

1 risposta

1

Dovrai leggere l'esempio alcune volte. Deduco dal testo altrove che il < > (diamanti) è un modo per evidenziare il tipo che stiamo guardando. Quindi il tipo è

<D1>

D1 è definito come

class D1 extends B with C

Poiché D1 è il più basso nella gerarchia, è mostrato per ultimo.

B with C with <D1>

Il resto dei passaggi sono espansioni di B e C e la successiva linearizzazione.

Nel complesso, penso che l'esempio dell'autore, in questo caso, sia fonte di confusione. Sta usando la forma sintattica di Scala per mostrare un processo semantico. Mentre questo può funzionare abbastanza bene per dimostrare, ad esempio, il principio di sostituzione, qui confonde sintassi e semantica, invece di chiarirli.

    
risposta data 11.11.2014 - 14:01
fonte

Leggi altre domande sui tag