var, let e const

Scritto da Andrea Manzini

questo articolo è stato tradotto da Nim by Example

var: variabili mutabili

var
  a = "pippo"
  b = 0
  # se non viene specificato nessun valore, e' inizializzato a 0
  c: int

# funziona, le variabili sono mutable
a.add("pluto")
b += 1
c = 3

echo a,b,c

let: variabili immutabili

let
  d = "tizio"
  e = 5
  # f: float   # errore di compilazione, la variabile deve assumere un valore

# assegnare nuovi valori a queste variabili, `d` and `e`, causerebbe errore di compilazione
#d.add("caio")
#e += 1

const: costanti

const PI = 3.14159265

proc getAlphabet(): string =
  for letter in 'A'..'Z':
    result.add(letter)

# una caratteristica molto potente di Nim è che può eseguire del codice questo causa l'esecuzione della proc a tempo di compilazione
const alphabet = getAlphabet()

echo alphabet

#alphabet = "abc" # questo genera un errore di compilazione, era stata dichiarata come costante 

per curiosità, se sbirci nel codice C generato, troverai una riga del tipo

STRING_LITERAL(TM__wIAuO6fGZn7Wh9cwbqAvZtw_9, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 26);

generata dal compilatore Nim, che esegue il codice indicato durante la compilazione e crea la costante.