val, var e tipi
Binding e inferenza
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:
Intper i numeri interiLongper i numeri interi grandiDoubleper i numeri decimaliFloatper 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,ChareString - Preferisca
valper ottenere codice più sicuro e chiaro
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.