Usare la REPL
Scala interattiva
Usare la REPL è una lezione Scala for Backend Engineering & Functional Programming gratuita su CoddyKit. Questa è la lezione 1 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.
Che cos'è la REPL?
REPL è l'acronimo di Read-Eval-Print Loop. È una shell interattiva in cui si digitano espressioni Scala e se ne visualizzano immediatamente i risultati.
Per avviarla, esegua scala (oppure scala-cli repl) nel terminale. È il modo più rapido per fare esperimenti con il linguaggio senza scrivere un programma completo.
La prima espressione
Digiti una qualsiasi espressione e prema Invio. Il REPL la valuta e stampa il risultato, il relativo tipo e un nome generato.
Ad esempio, digitando 1 + 1 viene visualizzato qualcosa come val res0: Int = 2.
object Main {
def main(args: Array[String]): Unit = {
println(1 + 1)
}
}Variabili res
Ogni risultato calcolato viene salvato automaticamente in una variabile denominata resN (res0, res1, ...).
Può riutilizzare questi nomi nelle espressioni successive, facendo sembrare il REPL una calcolatrice sempre attiva.
object Main {
def main(args: Array[String]): Unit = {
val res0 = 2 + 3
val res1 = res0 * 10
println(res1)
}
}Informazioni sul tipo
Una delle funzionalità più utili è che il REPL indica il tipo di ogni risultato.
Digitando "hello" viene stampato val res0: String = hello. Questo aiuta a capire quale tipo Scala inferisce per ogni espressione.
object Main {
def main(args: Array[String]): Unit = {
val greeting = "hello"
println(greeting)
}
}Definizione di valori
Nel REPL può definire valori denominati usando val. Questi rimangono disponibili per il resto della sessione.
Una volta definiti, può farvi riferimento in qualunque riga successiva.
object Main {
def main(args: Array[String]): Unit = {
val pi = 3.14159
val radius = 2.0
println(pi * radius * radius)
}
}Definizione di funzioni
Non è limitato alle espressioni su una sola riga. Può definire funzioni direttamente nel REPL e chiamarle subito.
In questo modo può creare piccoli strumenti di supporto e testarli immediatamente.
object Main {
def square(x: Int): Int = x * x
def main(args: Array[String]): Unit = {
println(square(5))
}
}Input su più righe
Se digita qualcosa di incompleto, ad esempio una parentesi graffa aperta, il REPL visualizza un prompt di continuazione e attende il resto.
Può quindi incollare o digitare naturalmente definizioni su più righe, senza che il REPL tenti di valutarle troppo presto.
object Main {
def main(args: Array[String]): Unit = {
val total =
1 +
2 +
3
println(total)
}
}Importazioni nel REPL
Può usare import nel REPL, proprio come in un file. È utile per importare gli strumenti di supporto della libreria standard.
Ad esempio, import scala.math.* rende disponibili sqrt, abs e altro ancora.
import scala.math.sqrt
object Main {
def main(args: Array[String]): Unit = {
println(sqrt(16.0))
}
}Comandi utili del REPL
Il REPL dispone di comandi speciali che iniziano con i due punti:
:helpelenca tutti i comandi:resetcancella la sessione:quitesce dal REPL:type exprmostra il tipo di un'espressione senza eseguirla
Perché usare il REPL?
Il REPL è perfetto per:
- Provare rapidamente un'API che non si conosce
- Verificare quale tipo produce un'espressione
- Prototipare la logica prima di aggiungerla a un progetto
- Imparare il linguaggio in modo interattivo
Unire tutti gli elementi
In una singola sessione può definire valori, scrivere funzioni, importare librerie e concatenare i risultati. Il REPL mantiene tutto nell'ambito corrente.
Ecco un piccolo esempio che potrebbe costruire riga per riga.
object Main {
def celsiusToF(c: Double): Double = c * 9 / 5 + 32
def main(args: Array[String]): Unit = {
val temps = List(0.0, 25.0, 100.0)
println(temps.map(celsiusToF))
}
}Verifica rapida
Verifichi la propria comprensione del REPL di Scala.
Riepilogo
Ha imparato che il REPL è un Read-Eval-Print Loop interattivo per Scala.
- Stampa il valore, il tipo e un nome
resNgenerato automaticamente per ogni risultato - Può definire
vale funzioni che rimangono disponibili nella sessione - Può usare
importper importare librerie e inserire input su più righe - Comandi come
:type,:resete:quitcontrollano la sessione
Domande Frequenti
La lezione «Usare la REPL» è gratuita?
Sì — il testo completo di «Usare la REPL» è 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 «Usare la REPL»?
Scala interattiva 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 1 di 4.
Quanto tempo richiede la lezione «Usare la REPL»?
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.