Warum funktioniert das Folgende nicht? (Ja, ich arbeite mit 2.9.0final und aktiviere die Option " -Xexperimental ".)
%Vor% Man kann darüber streiten, wie sinnvoll das ist ... Wenn dies wie erwartet funktionieren würde, wird der Vorrang bei "Say".toInt
: StringLike.toInt
oder (new Dynamic {...}).applyDynamic("toInt")
?
Der Compiler zuerst sucht nach für eine implizite Ansicht von String => { def hello: ? }
. Das scheitert, also überprüft wenn String <: Dynamic
. Diese werden nicht kombiniert.
Diese dynamische Anwendungsfunktion wurde noch nicht finalisiert - in Scala 2.9.0 ist sie experimentell und kann sich ändern. Aber ich bezweifle, dass dies mit einbezogen werden würde, denn mit einem solchen impliziten, wirfst du alle Arten von Sicherheit aus dem Fenster. Bei falsch geschriebenen Methodennamen oder falschen Argumenttypen würde nie ein Kompilierfehler auftreten. Was ist Ihr Anwendungsfall?
Tags und Links scala dynamic-typing