Ich lese durch Scala-by-Beispiel (2014) von Martin Odersky. Auf Seite 61 heißt es, dass eine Funktion vom Typ String zum Typ Int als eine Instanz des Merkmals Function1 [String, Int] dargestellt wird. Wo Function1 ist wie folgt definiert:Welche Funktion hat der Untertyp in diesem Scala-Beispiel?
trait Function1[-A,+B] {def apply(x: A): B}
Es wird auch gesagt, weiter unten, dass
S => T ein Subtyp von S '=> T', vorausgesetzt, S‘ist ein Subtyp von S und T ist ein Subtyp von T '.
Er verwendet das folgende Codebeispiel: val f: (AnyRef => Int) = x => x.hashCode() val g: (String => Int) = f g("abc")
So, hier ist meine Frage bitte. Da String ein Subtyp von AnyRef ist, nehme ich an, dass in diesem Beispiel f einen Subtyp von g darstellt. Ist das korrekt? Wenn ja, erläutern Sie bitte die Logik in dieser Bestimmung.
yup. kurz und einfach - macht Sinn. Danke! – TalBeno