Scala Syntax - pass Zeichenfolge zu wieder
Frage
Während das Spiel mit regexps in Scala ich so etwas wie dies schrieb:
scala> val y = "Foo"
y: java.lang.String = Foo
scala> y "Bar"
scala>
Wie Sie sehen können, ist die zweite Aussage nur stillschweigend akzeptiert. Ist das legal eine rechtliche Aussage, und wenn ja, was tut sie? Oder ist es ein Fehler im Parser und es sollte eine Fehlermeldung?
Lösung
Dies ist in der Tat ein Fehler in dem Parser. Es wird in scala 2.7.2 festgelegt (die RC6 im Moment)
$ ./scala
Welcome to Scala version 2.7.2.RC6 (Java HotSpot(TM) Client VM, Java 1.5.0_16).
Type in expressions to have them evaluated.
Type :help for more information.
scala> def y = "foo"
y: java.lang.String
scala> y "bar"
<console>:1: error: ';' expected but string literal found.
y "bar"
^
scala> val x = "foo"
x: java.lang.String = foo
scala> x "foo"
<console>:1: error: ';' expected but string literal found.
x "foo"
^
scala> "foo" "bar"
<console>:1: error: ';' expected but string literal found.
"foo" "bar"
^
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow