Ecco un breve codice:Scala: applicazione di vista
import scala.language.implicitConversions
implicit def str2int(str:String) = str.toInt
object Container {
def addIt[A](x: A)(implicit str2int: A => Int) = 123 + x
def addIt2(x: String)(implicit str2int: String => Int) = 123 + x
}
println(Container.addIt("123"));
println(Container.addIt2("123"));
Due domande:
- è "(implicita str2int: A => Int)" chiamato un punto di vista? Quando dici una "vista", quale parte specifica del codice indica?
- Perché addIt restituisce 246 mentre addIt2 restituisce una stringa "123123"?
Qualsiasi buona risorsa su questo argomento sarebbe anche molto apprezzata. Grazie.