ho una seguente funzione:
def removeLast(list: List[Int]): List[Int] = list match {
case List() => List()
case List(x) => List()
case x :: xs => x :: removeLast(xs)
}
Quando mi definiscono e l'uso dalla console sbt tutto funziona bene. Ma quando creo un foglio di lavoro in IntelliJ IDEA e provo a farlo funzionare, allora appare la seguente eccezione:
java.lang.NoSuchMethodError: scala.collection.immutable.$colon$colon.hd$1()Ljava/lang/Object; at week5.A$A26$A$A26.removeLast(lists.sc8362409100671270508.tmp:30) at #worksheet#.#worksheet#(lists.sc8362409100671270508.tmp:33)
Inoltre, quando cambio ultima riga a:
case x :: xs => 1 :: removeLast(xs)}
allora funziona.
Quale potrebbe essere il problema?
È possibile modificare la firma a ' def removeLast [T] (list: List [T]): List [T] ' –
Grazie per la risposta, purtroppo l'ho già provato e il risultato è come descritto sopra. –
L'idea usa il proprio compilatore di scala. Quindi dovresti creare un ticket per https://youtrack.jetbrains.com/issues/SCL. Verifica innanzitutto se disponi dell'ultima versione del plug-in. 135.1228 –