Beim Kompilieren des folgenden Codes mit Scala 2.7.3,
package spoj
object Prime1 {
def main(args: Array[String]) {
def isPrime(n: Int) = (n != 1) && (2 to n/2 forall (n % _ != 0))
val read = new java.util.Scanner(System.in)
var nTests = read nextInt // [*]
while(nTests > 0) {
val (start, end) = (read nextInt, read nextInt)
start to end filter(isPrime(_)) foreach println
println
nTests -= 1
}
}
}
Ich erhalte den folgenden Kompilierzeitfehler:
PRIME1.scala:8: error: illegal start of simple expression
while(nTests > 0) {
^
PRIME1.scala:14: error: block must end in result expression, not in definition
}
^
two errors found
Wenn ich am Ende der kommentierten Zeile ein Semikolon hinzufüge, wie [*]
kompiliert das Programm problemlos. Kann jemand bitte erklären, warum Scala Semikolon Inferenz nicht auf diese bestimmte Zeile zu arbeiten?