2011-09-12 8 views
67

devo alcune funzioni Scala definite in un file, non è in una classe, e vorrei usarli nell'interprete Scala. So che posso dire scala filename.scala per eseguire semplicemente il file e uscire l'interprete, ma vorrei eseguire il file e poi rimanere nell'interprete in modo da poter fare qualche prova. Qualcuno può dirmi come caricare semplicemente un file nell'interprete in modo da poter utilizzare le funzioni definite al suo interno?Carica il file Scala nell'interprete per utilizzare le funzioni?

+19

': Carico/path/to/file' a Scala REPL – Jamil

+1

Impressionante, questo è esattamente quello che stavo cercando. Non so perché è stato così difficile da trovare. –

+1

Jamil, per favore, postalo come una risposta, in modo che Bea Metitiri possa contrassegnarlo come una risposta. –

risposta

89

tipo :load /path/to/file a Scala REPL.

È possibile ottenere l'elenco completo dei comandi disponibili digitando :help

+0

Questo sembra valutare una definizione alla volta, che non funziona se il file ha un tratto sigillato o riferimenti in avanti. ': paste/path/to/file' funziona meglio, come menzionato nella risposta di Suresh. –

4

Basta ricordare, inserire il percorso completo. Ho trovato in Linux problema facendo in questo modo:

: Carico ~/fileName.scala

per sbarazzarsi di errore "Il file non esiste" Ho fatto

: caricare /complete/path/fileName.scala

12

In più occasioni, :paste potrebbe essere il tuo migliore amico (di :load). Ecco un esempio su come utilizzare : incollare.

scala> :paste 
// Entering paste mode (ctrl-D to finish) 

if (true) 
    print("that was true") 
else 
    print("false") 

[Ctrl-D] 

// Exiting paste mode, now interpreting. 

that was true 

Si può anche utilizzare :paste per caricare un file utilizzando seguente comando :paste [path]

scala> :paste ~/Desktop/repl_seeder.scala 
Pasting file ~/Desktop/repl_seeder.scala... 
defined object test1 

scala> test1.main(Str) 
my first scala program