Sui tipi di dato di Scala

In un articolo precedente ho parlato dei dati con cui possiamo lavorare in Scala. Qui darò uno sguardo d’insieme alla gerarchia dei tipi in Scala.

Credits: documentazione di Scala – https://docs.scala-lang.org/tour/unified-types.html

Tutti i tipi in Scala fanno parte di questa gerarchia, e le nostre classi non saranno da meno: faranno automaticamente parte di essa (così come le nostre classi Java estendono automaticamente Object).

Any è il supertipo di tutti i tipi. Qui sono definiti i metodi equals, hashCode e toString.

Dopo Any troviamo due sottoclassi: AnyVal e AnyRef. Da AnyVal discendono i cosiddetti value types: Double, Float, Long, Int, Short, Byte, Char, Boolean e Unit. Unit è un tipo particolare: è un value type che non porta con sé nessuna informazione (una sorta di void).

Il fratello di AnyVal è AnyRef (corrisponde a java.lang.Object), e da esso discendono tutti i reference type e le nostre classi. I reference type sono i non-value type, e qui troviamo tra gli altri le collezioni, le stringhe e Option. Come il nome fa intuire Option è un tipo di dato opzionale, e i suoi possibili valori sono istanze di scala.Some oppure None:

Option è un po’ il @Nullable di Scala. Per una sua panoramica completa potete far riferimento alla documentazione della Scala Standard Library.

Completano la gerarchia  Nothing e Null. Nothing è il sottotipo di tutti i tipi, detto anche bottom type. Non c’è nessun value type che abbia come tipo Nothing. Un suo uso comune è quello di segnalare la non terminazione di un’applicazione (ad esempio una eccezione, un’uscita forzata, o un ciclo infinito). Possiamo definirlo come il tipo di un’espressione che non ha un valore, o un metodo che non termina normalmente. Null  infine è un sottotipo di tutti i reference type (cioè è un sottotipo di tutti i sottotipi di AnyRef). Ha un singolo valore, identificato dal literal null. Null viene fornito soprattutto per questioni di interoperabilità con altri linguaggi basati su JVM, e non dovrebbe mai essere usato in un codice Scala.

Pierpaolo Paris

Sono uno dei tanti che sono entrati nel girone infernale di Ingegneria Informatica, e che poi ne è anche uscito. Attualmente lavoro come sviluppatore presso una società di consulenza. Ogni tanto mi diletto con la fotografia.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.