저는 스칼라를 사용하여 입문 프로그래밍 수업을 가르치고 있습니다. 우리는 REPL부터 시작하고 있습니다. REPL은 학생이 readLine 명령을 입력 할 때 입력 내용이 표시되지 않는다는 버그가 있습니다. 제안하거나 제공 할 수있는 해결 방법이 있습니까?스칼라 REPL에서 사용자 입력을 에코하는 방법은 무엇입니까?
Eclipse를 사용할 때이 문제가되지 않습니다,하지만 난 내 학생들에게 이클립스를 소개하기 전에 그것은 몇 주 될 것입니다.
저는 스칼라를 사용하여 입문 프로그래밍 수업을 가르치고 있습니다. 우리는 REPL부터 시작하고 있습니다. REPL은 학생이 readLine 명령을 입력 할 때 입력 내용이 표시되지 않는다는 버그가 있습니다. 제안하거나 제공 할 수있는 해결 방법이 있습니까?스칼라 REPL에서 사용자 입력을 에코하는 방법은 무엇입니까?
Eclipse를 사용할 때이 문제가되지 않습니다,하지만 난 내 학생들에게 이클립스를 소개하기 전에 그것은 몇 주 될 것입니다.
사용 scala -Xnojline
: 당신은 이전 명령을 수정할 수 있도록
scala> val l = readLine
test
l: String = test
그러나 이것은 특정 화살표 키에, 몇 가지 휴식 않습니다. 가능하면
, 당신은 그 기능을 복원 rlwrap scala -Xnojline
가 (너무 Cygwin에서 볼 수 있어야한다)를 사용할 수 있습니다. this post에
전체 신용.
당신은 REPL의 독자에 액세스하려면 전원 모드을 사용할 수 있습니다;
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>
편집 : @ 솜 - snytt가 지적했듯이, 2.11 당신이 모두 짧고 기억하기 쉬운 위의 코드에 reader
대신 repl.in
을 사용할 수 있습니다 그것은 당신에게 완전히 readLine
작업을 줄 것이다 .
감사! repl.in.readLine은 완벽하게 작동합니다. reader.readLine은 그렇지 않습니다. Windows에서
, 나는 오류 값 리더 : 찾을 수 없습니다 내 맥에
, 나는 오류 클래스 글로벌 가치 리더 scala.tools.nsc.Global에 액세스 할 수 없습니다
repl.in.readLine입니다 이것이 REPL만을위한 것이라는 점을 강조하면서 어떤 경우에도 제 학생들에게 더 나을 것입니다. –
@ 솜 - snytt는'reader.readLine' 어떤 이상한 이유로 2.10 작동하지 않습니다. 나는 그게 문제라고 추측하고있다. – gourlaysama