Sto prendendo i miei primi passi interessanti (non-ciao-livello mondiale) con Scala (2.9.1) e sono bloccato cercando di capire un messaggio di errore molto disinformativo. Va molto simile a questo:Scala mismatch durante l'associazione Mappa
error: type mismatch;
found : (Int, Array[InputEntry]) => (Int, Double)
required: (Int, Array[InputEntry]) => ?
entries.groupBy(grouper).map((k: Int, ies: Array[InputEntry]) => (k, doMyStuff(ies)))
Come si può intuire processo in questo frammento di codice dovrebbe essere dove alcuni di elaborazione va avanti, ed è in realtà una funzione ben definita con la firma Array[InputEntry] => Double
.
La firma di un grouper, invece, è Array[InputEntry] => Int
.
Ho cercato di estrarre una funzione e sostituire il lambda ma era inutile, e mi sono bloccato cercando di capire il punto di domanda nell'errore ...
Tutte le idee?
Modifica: Devo chiarire che InputEntry è una classe che ho definito, ma per il gusto di questo esempio mi sembra che sia poco pertinente.
Abbiamo bisogno di vedere un po 'del codice. La parte del codice che è stata stampata con il messaggio di errore non è sufficiente. In particolare, qual è il tipo di firma di 'doMyStuff' e quale tipo di variabile stai cercando di scrivere il risultato? –
Sei sicuro che il messaggio di errore non dice 'obbligatorio: ((Int, Lista [InputEntry]) =>?' –
Suppongo che avrei dovuto rendere più specifico che le voci sono una mappa. Grazie comunque – em70