Implizite Konvertierung von Beliebig zu Dynamisch

8

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") ?

stattfinden     
Peter Schmitz 15.05.2011, 12:31
quelle

1 Antwort

9

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?

    
retronym 15.05.2011, 14:30
quelle

Tags und Links