2011-09-12 17 views
67

Tengo algunas funciones de Scala definidas en un archivo, no en una clase, y me gustaría usarlas en el intérprete de Scala. Sé que puedo decir scala filename.scala para simplemente ejecutar el archivo y salir del intérprete, pero me gustaría ejecutar el archivo y luego quedarme en el intérprete para poder hacer algunas pruebas. ¿Alguien puede decirme cómo simplemente cargar un archivo en el intérprete para que pueda usar las funciones definidas dentro de él?Cargue el archivo Scala en el intérprete para usar las funciones?

+19

': carga/ruta/a/file' en REPL Scala – Jamil

+1

impresionante, eso es exactamente lo que estaba buscando. No sé por qué fue tan difícil de encontrar. –

+1

Jamil, publique esto como respuesta, para que Bea Metitiri lo marque como respuesta. –

Respuesta

89

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

Puede obtener la lista completa de los comandos disponibles escribiendo :help

+0

Esto parece evaluarlo una definición a la vez, que no funciona si el archivo tiene un rasgo sellado o referencias directas. ': paste/path/to/file' funciona mejor, como se menciona en la respuesta de Suresh. –

4

Sólo recordatorio, poner la ruta completa. He encontrado un problema en Linux, haciendo de esta manera:

: Carga ~/fileName.scala

para deshacerse de error "Ese archivo no existe" Hice

: cargar /complete/path/fileName.scala

12

En ocasiones, :paste podría ser su mejor amigo (que :load). Aquí hay un ejemplo sobre cómo usar : pegar.

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 

También se puede utilizar :paste para cargar un archivo usando los siguientes comandos :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 
Cuestiones relacionadas