Scala: lavorare con i dati

Variabili

Le variabili non sono altro che degli identificatori a cui corrisponde uno spazio di memoria, riservato, assegnabile e indirizzabile. Nella maggior parte dei linguaggi sono lo strumento più comune per immagazzinare dei dati, e sono mutevoli e riassegnabili (a meno di averle definite in sola lettura con le keyword specifiche di un certo linguaggio).

Nessuno ci vieta di usarle in Scala, ma è preferibile usare i valori, per via della maggiore stabilità e predicibilità del codice: quando si usa un valore si può star certi che, qualunque cosa accada e chiunque ci acceda, il suo contenuto sarà sempre lo stesso, e questo non è da sottovalutare quando si lavora in concorrenza.

La sintassi per la definizione di una variabile è pressoché identica a quella per la definizione di un valore:

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

Stavolta però possiamo assegnare un nuovo valore (purché coerente col tipo della variabile: quello non può essere cambiato) senza che il compilatore ci minacci di morte:

Nomi

Le regole per i nomi in Scala sono pressoché le stesse degli altri linguaggi, ma con qualche possibilità in più: possiamo usare anche alcuni operatori matematici (tutti quelli in \u0020-007E e le categorie Unicode Sm (Symbol) ad eccezione delle parentesi quadre dei simboli di punteggiatura) e le lettere greche.

Un nome ammissibile in Scala deve seguire queste regole:

  1. Una lettera seguita da zero o più lettere e numeri (a, az, a1, a007…)
  2. Una lettera seguita da zero o più lettere e numeri, seguita da un tratto basso poi da uno o più lettere e numeri oppure un operatore
  3. Uno o più operatori
  4. Uno o più caratteri qualunque, ad eccezione del backquote (`), inclusi tra una coppia di backquote. Detta così è contorta, riformulo: se includi qualcosa tra una coppia di backquote qualsiasi nome è lecito, purché non contenga backquote

Giochiamo un po’ con i nomi nel REPL:

Abbiamo imparato che:

  • qualsiasi stringa che inizi con un carattere “umano” è un nome valido
  • il simbolo del dollaro è un carattere ammesso, quello dell’euro no
  • un nome non può iniziare con un numero
  • i nomi non possono contenere simboli di punteggiatura, a meno che non siano compresi tra due backquote

Il fatto di avere più libertà nei nomi comunque non implica che dobbiamo essere creativi: stiamo scrivendo codice per gli esseri umani, lo ribadisco, ed è bene usare nomi significativi e comprensibili (ne ho già parlato qui). La convenzione del mondo Java (e quindi anche di Scala) è quella di usare nomi in camel case (il nome inizia con la minuscola, e ogni parola inizia con una maiuscola). Questo ci aiuta a distinguere quelli che sono valori o variabili dalle classi, che sono sempre in camel case ma iniziano con la maiuscola.

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.