Salve,
mi serve una funzione per cercare un elemento in una lista.
Siccome ho molte liste di tipi diversi ho realizzato una funzione generale.
Volevo mostrarvela per sapere cosa ne pensavate e se puo andar bene.
Non ho mai usato le eccezzioni e volevo sapere se è corretto come ho fatto.
// Funzione base search: Ricerca di un elemento in una lista.
// La funzione accetta due argomenti,
// la lista in cui cercare l'elemento e l'elemento da cercare
def search[T](xlist: List[T], xelem: T) : T = {
val i = xlist indexOf xelem // Restituisce l’indice del primo element in xlist uguale a xelem, o -1 se non compare
if (xlist == Nil) throw new Exception ("La lista è vuota, nessun elemento trovato")
else if (i>=0) xlist(i)
else throw new Exception ("L'elemento: " + xelem + " non è stato trovato in " + xlist)
}//search
Cosa ne pensate?
E' la prima che mi è venuta in mente. Avete una versione più elegante o più funzionale.
L'avevo preso in considerazione find, solo che restituisce un elemento di tipo Option[T].
Quindi se non trova l'elemento richiesto, mi restituisce None, senza lanciare un eccezione o stampare un messaggio.
Ci devo pensare un po'.
Salve ragazzi,
una piccola curiosità...
Esiste un metodo per stampare il nome della variabile a cui è stata assegnata una classe.
Mi esprimo con un esempio:
class Persona (val nome: String, val cognome: String)
val PER1 = new Persona ("Giovanni", "Rossi")
println ("PER1" + " è una classe di tipo: " + PER1.getClass())
Vorrei che anche "PER1" fosse chiamato con un metodo di scala.