Scala for Backend Engineering & Functional Programming · Lezione

val, var e tipi

Binding e inferenza

Lezione 2 di 413 passaggi

val, var e tipi è una lezione Scala for Backend Engineering & Functional Programming gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Scala for Backend Engineering & Functional Programming, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Scala for Backend Engineering & Functional Programming include 4 lezioni in totale.

Binding in Scala

In Scala si assegnano nomi ai valori usando i binding. Le due parole chiave sono val e var.

Un val è immutabile (non può essere riassegnato), mentre un var è mutabile (può essere riassegnato).

Dichiarazione di un val

Un val associa un nome a un valore una sola volta. Se prova a riassegnarlo, si verifica un errore di compilazione.

Come impostazione predefinita, preferisca val. L'immutabilità rende il codice più facile da comprendere.

object Main {
  def main(args: Array[String]): Unit = {
    val name = "Ada"
    println(name)
  }
}

Dichiarazione di un var

Un var può essere riassegnato usando =. Lo usi solo quando ha realmente bisogno di uno stato mutabile.

Noti che il nuovo valore deve comunque essere compatibile con il tipo originale.

object Main {
  def main(args: Array[String]): Unit = {
    var count = 0
    count = count + 1
    count = count + 1
    println(count)
  }
}

Inferenza del tipo

Di solito Scala determina il tipo automaticamente. Scrivendo val x = 42, x diventa automaticamente un Int.

Questa funzionalità si chiama inferenza del tipo: consente di usare la tipizzazione statica senza dover specificare sempre il tipo.

object Main {
  def main(args: Array[String]): Unit = {
    val x = 42
    val pi = 3.14
    val flag = true
    println(x)
    println(pi)
    println(flag)
  }
}

Annotazioni di tipo esplicite

Può anche specificare esplicitamente il tipo dopo i due punti: val x: Int = 42.

È utile per documentare il codice oppure per scegliere un tipo più ampio di quello inferito.

object Main {
  def main(args: Array[String]): Unit = {
    val age: Int = 30
    val price: Double = 9.99
    val label: String = "Sale"
    println(label + ": " + price)
  }
}

Tipi numerici comuni

Scala dispone di diversi tipi numerici:

  • Int per i numeri interi
  • Long per i numeri interi grandi
  • Double per i numeri decimali
  • Float per i numeri decimali con precisione inferiore

Un literal intero viene interpretato per impostazione predefinita come Int; un literal decimale come Double.

object Main {
  def main(args: Array[String]): Unit = {
    val whole: Int = 7
    val big: Long = 9000000000L
    val dec: Double = 2.5
    println(whole + dec)
  }
}

Boolean e Char

Boolean contiene true o false. Char contiene un singolo carattere scritto tra apici singoli.

Sono tipi completi che può memorizzare in val e var.

object Main {
  def main(args: Array[String]): Unit = {
    val isReady: Boolean = true
    val grade: Char = 'A'
    println(isReady)
    println(grade)
  }
}

Tipo String

String contiene testo racchiuso tra virgolette doppie. Le stringhe sono immutabili in Scala.

Può concatenarle con + e chiamare su di esse molti metodi utili.

object Main {
  def main(args: Array[String]): Unit = {
    val first = "Grace"
    val last = "Hopper"
    val full = first + " " + last
    println(full.toUpperCase)
  }
}

Perché scegliere val invece di var?

I valori immutabili prevengono un'intera categoria di bug: nient'altro può modificarli in modo imprevisto.

  • Sono più facili da comprendere
  • Sono più sicuri nel codice concorrente
  • Favoriscono uno stile funzionale

Ricorra a var solo quando la mutabilità è davvero necessaria.

La sicurezza dei tipi in azione

Poiché Scala è tipizzato staticamente, il compilatore rileva le incompatibilità tra tipi prima dell'esecuzione del programma.

Assegnare del testo a un Int causerebbe un errore in fase di compilazione. Ecco del codice valido e coerente con i tipi.

object Main {
  def main(args: Array[String]): Unit = {
    val quantity: Int = 3
    val unitPrice: Double = 4.50
    val total: Double = quantity * unitPrice
    println(total)
  }
}

Mettere insieme gli elementi

Combini binding immutabili e mutabili, inferenza e annotazioni in un unico piccolo programma.

Noti come il compilatore tenga traccia di ogni tipo al posto Suo.

object Main {
  def main(args: Array[String]): Unit = {
    val base = 100
    var running = base
    val step: Int = 25
    running = running + step
    println(running)
  }
}

Verifica rapida

Verifichi la propria comprensione dei binding e dei tipi.

Riepilogo

Ha imparato come Scala assegna nomi ai valori:

  • val è un binding immutabile; var è mutabile
  • La inferenza del tipo determina il tipo a partire dal valore
  • Può aggiungere annotazioni esplicite come val x: Int
  • I tipi fondamentali includono Int, Long, Double, Boolean, Char e String
  • Preferisca val per ottenere codice più sicuro e chiaro
Gratis per iniziare

Impara Scala con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
39
Lezioni
143

Domande Frequenti

La lezione «val, var e tipi» è gratuita?

Sì — il testo completo di «val, var e tipi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Scala for Backend Engineering & Functional Programming, passa a CoddyKit PRO. Il corso Scala for Backend Engineering & Functional Programming include 4 lezioni in totale.

Cosa imparerò in «val, var e tipi»?

Binding e inferenza Eserciti Scala for Backend Engineering & Functional Programming con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Scala for Backend Engineering & Functional Programming?

Non è richiesta alcuna esperienza precedente. Scala for Backend Engineering & Functional Programming su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «val, var e tipi»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Scala for Backend Engineering & Functional Programming?

Sì. Ogni lezione Scala for Backend Engineering & Functional Programming include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Usare la REPL
  2. val, var e tipi
  3. Espressioni invece di istruzioni
  4. Interpolazione delle stringhe
← Torna a Scala for Backend Engineering & Functional Programming