Warum Klammern um den Aufruf einer Scala-Methode herum int

7

Ich gehe durch ein Scala-Tutorial und es wird erklärt, dass alle Operatoren Methodenaufrufe sind. Also 1 * 2 ist wirklich:

%Vor%

Nur um zu sehen, was passieren würde, lief ich:

%Vor%

Also ich führe es noch einmal mit dem Deprecation-Flag aus und bekomme:

%Vor%

Könnte mir bitte jemand diese Warnung erklären und mir auch erklären, welchen Zweck die Klammern um die 1 in scala> (1).*(2) erfüllen?

    
sunrize920 12.01.2014, 21:54
quelle

1 Antwort

21

Wenn Sie 1.*(2) sagen, ist es zweideutig, ob Sie meinen:

(1).*(2) , was zu einem Int

führt

oder

(1.)*(2) , was zu einem Double führt, da 1. eine gültige Syntax ist, die Double 1.0

bedeutet

Scala behandelt es derzeit als zweites, aber da das richtige Verhalten nicht offensichtlich ist, wird es sich von Scala 2.11 an ändern, um es wie das erste zu behandeln. Scala warnt dich, dass sich sein Verhalten ändern wird.

    
dhg 12.01.2014, 21:56
quelle

Tags und Links