Oto krótki kod:Scala: aplikacja widzenia
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"));
dwa pytania:
- jest "(niejawny str2int: A => int)" nazywa się widok? Kiedy mówisz "widok", która konkretna część kodu wskazuje?
- Dlaczego addIt zwraca 246, podczas gdy addIt2 zwraca ciąg "123123"?
Wszelkie dobre zasoby na ten temat również zostaną docenione. Dziękuję Ci.