Scala: lavorare con i dati

I tipi di dati sono il mattoncino fondamentale per costruire le nostre applicazioni, quindi dopo l’installazione è ragionevole iniziare da qui questa serie di articoli su Scala.

Literal, valori, variabili e tipi

Prima di iniziare ad elencare i tipi di dati disponibili è bene dare un po’ di terminologia:

  • un literal (o se preferite letterale) non è altro che un dato che appare direttamente all’interno del codice (ad esempio 5, 3.14, “Articolo fichissimo su Scala”)
  • Un valore è una unità di archiviazione immutabile (sul significato e sulle implicazioni dell’immutabilità ci torneremo a breve) e tipata.
  • Una variabile è una unità di archiviazione mutabile e tipata
  • Un tipo non è altro che il tipo di dato con cui si sta lavorando. Tutti i dati in Scala hanno un tipo, e tutti (compresi quelli che ci aspetteremmo di trovare come primitivi) sono definiti come classi, e quindi hanno anche dei metodi con cui operare

Valori

Per dichiarare un valore si usa la sintassi

val <nome>:[<tipo>] = <literal>

Il tipo può anche non essere specificato: Scala, come tutti i linguaggi moderni, è dotato di un meccanismo di inferenza dei tipi che gli permette di capire il tipo di un dato in base all’uso che se ne fa. Vediamo un esempio nello scala REPL:

Il primo valore, x, è stato dichiarato indicando esplicitamente il suo tipo, mentre il secondo valore, y, no. Scala è stato comunque in grado di capirne il tipo. Questa inferenza dei tipi ci solleva dal compito di dover dichiarare esplicitamente il tipo di un dato, ma può limitare la leggibilità del codice. La regola direbbe di indicare il tipo quando non è facilmente intuibile (ricordiamoci che scriviamo codice per gli esseri umani, prima ancora che per le macchine).

I valori sono la scelta di default per quanto riguarda l’immagazzinamento dei dati, e il motivo sta proprio nella loro immutabilità: nelle applicazioni può capitare che un dato sia acceduto da più thread, e se ogni thread può modificare un dato signfica che la nostra applicazione ha un comportamento potenzialmente impredicibile.

Immutabilità significa anche che se andiamo a sovrascrivere il dato all’interno di un valore il compilatore ci segnalerà un errore. Nell’esempio che segue ho tentato di sovrascrivere il dato all’interno di y, e il compilatore mi ha preso a male parole:

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.