2013-08-31 11 views
7

sto insegnando una classe di programmazione introduttivo, utilizzando Scala. Stiamo iniziando con la REPL. Il REPL ha un bug in quanto, quando lo studente entra in un comando di readLine, il loro ingresso non è eco. C'è qualche soluzione che posso suggerire o fornire?Come eco l'input dell'utente in Scala REPL?

non ho questo problema quando si utilizza Eclipse, ma sarà qualche settimana prima che io presento Eclipse ai miei studenti.

+0

@ som-snytt 'reader.readLine' non funziona con 2.10 per qualche strana ragione. Sto indovinando che è il problema. – gourlaysama

risposta

2

Uso scala -Xnojline:

scala> val l = readLine 
test 
l: String = test 

Ciò tuttavia rompere alcune cose, in particolare i tasti di direzione, quindi non è possibile modificare i comandi precedenti.

Se disponibile, è possibile utilizzare rlwrap scala -Xnojline (dovrebbe essere disponibile anche su cygwin) per ripristinare tali funzionalità.

credito completo a this post.

4

È possibile utilizzare la modalità di alimentazione per ottenere l'accesso al lettore REPL; che vi darà una completamente funzionante readLine:

scala> :power 
** Power User mode enabled - BEEP WHIR GYVE ** 
** :phase has been set to 'typer'.   ** 
** scala.tools.nsc._ has been imported  ** 
** global._, definitions._ also imported ** 
** Try :help, :vals, power.<tab>   ** 

scala> repl.in.readLine("enter something: ") 
enter something: hello world 
res0: String = hello world 

scala> 

Edit: come @ som-snytt sottolineato, in 2.11 è possibile utilizzare reader anziché repl.in nel codice di cui sopra, che è allo stesso tempo più breve e più facile da ricordare .

+0

Grazie! repl.in.readLine funziona perfettamente; reader.readLine non lo fa.
Sul mio Mac, ottengo l'errore: non trovato: lettore di valore
Su Windows, ottengo l'errore: lettore di valore nella classe globale non può essere letta in scala.tools.nsc.Global
repl.in.readLine è probabilmente meglio per i miei studenti, in ogni caso, come si sottolinea che questo è solo per il REPL. –

Problemi correlati