Domanda

I due sono diversi per implementarlo.

uno è più breve

implicit def toR1(s:String) = new { def getLength = s.length)}
.

secondo è più lungo

class R2(s:String){def getLength2 = s.length)}
implicit def toR2(s:String) = new R2(s)
.

Quale è migliore?

È stato utile?

Soluzione

La prima versione utilizza un tipo strutturale .Consente di scrivere codice breve e leggibile, ma uno svantaggio di tipi strutturali è che la riflessione viene utilizzata in fase di esecuzione quando si chiama il metodo nel tipo strutturale.Chiamare un metodo tramite la riflessione è più lento che chiamare direttamente un metodo.

Maggiori dettagli sono in questo post blog (scritto da me): Evita i tipi strutturali quando le librerie Pimping

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top