함수를 사용하기 위해 스칼라 파일을 인터프리터에로드 하시겠습니까?


78

클래스가 아닌 파일에 정의 된 일부 Scala 함수가 있으며 Scala 인터프리터에서 사용하고 싶습니다. scala filename.scala단순히 파일을 실행하고 인터프리터를 종료하라고 말할 수 있지만 파일을 실행 한 다음 인터프리터에 머물러서 테스트를 수행하고 싶습니다. 누구든지 파일을 인터프리터에로드하여 그 안에 정의 된 함수를 사용할 수있는 방법을 알려줄 수 있습니까?


21
:load /path/to/file스칼라 REPL
Jamil

1
굉장합니다. 바로 제가 찾던 것입니다. 왜 그렇게 찾기 어려웠는지 모르겠습니다.

1
Jamil, 제발, Bea Metitiri가 답변으로 표시 할 수 있도록 이것을 답변으로 게시하세요.
Illarion Kovalchuk 2011 년

답변:


98

:load /path/to/fileScala REPL을 입력하십시오 .

다음을 입력하여 사용 가능한 명령의 전체 목록을 얻을 수 있습니다. :help


3
이것은 한 번에 하나의 정의를 평가하는 것으로 보이며 파일에 봉인 된 특성이나 포워드 참조가 있으면 작동하지 않습니다. :paste /path/to/fileSuresh의 답변에서 언급했듯이 더 잘 작동합니다.
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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.