Завантажити файл Scala в інтерпретатор для використання функцій?


78

У мене є деякі функції Scala, визначені у файлі, а не в класі, і я хотів би використовувати їх у інтерпретаторі Scala. Я знаю, що можу сказати, scala filename.scalaпросто запустити файл і вийти з інтерпретатора, але я хотів би запустити файл, а потім залишитися в інтерпретаторі, щоб я міг провести тестування. Хто-небудь може сказати мені, як просто завантажити файл в інтерпретатор, щоб я міг використовувати функції, визначені в ньому?


21
:load /path/to/filein scala REPL
Jamil

1
Чудово, це саме те, що я шукав. Не знаю, чому це було так важко знайти.

1
Джаміль, будь ласка, опублікуй це як відповідь, щоб Беа Метітірі могла позначити це як відповідь.
Ілларіон Ковальчук

Відповіді:


98

введіть :load /path/to/fileу Scala REPL.

Ви можете отримати повний список доступних команд, набравши :help


3
Здається, це оцінює його по одному визначенню за раз, яке не працює, якщо файл має запечатану ознаку або прямі посилання. :paste /path/to/fileпрацює краще, як зазначено у відповіді Суреша.
Brian McCutchon

21

Іноді :pasteможе бути вашим кращим другом (ніж :load). Ось приклад того, як використовувати : paste .

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

Також можна :pasteзавантажити файл за допомогою наступної команди: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

4

Просто нагадайте, поставте повний шлях. Я знайшов проблему в Linux, зробивши так:

: load ~ / fileName.scala

щоб позбутися помилки "Цей файл не існує", я це зробив

: load /complete/path/fileName.scala

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.