2013-08-31 1 views
7

저는 스칼라를 사용하여 입문 프로그래밍 수업을 가르치고 있습니다. 우리는 REPL부터 시작하고 있습니다. REPL은 학생이 readLine 명령을 입력 할 때 입력 내용이 표시되지 않는다는 버그가 있습니다. 제안하거나 제공 할 수있는 해결 방법이 있습니까?스칼라 REPL에서 사용자 입력을 에코하는 방법은 무엇입니까?

Eclipse를 사용할 때이 문제가되지 않습니다,하지만 난 내 학생들에게 이클립스를 소개하기 전에 그것은 몇 주 될 것입니다.

+0

@ 솜 - snytt는'reader.readLine' 어떤 이상한 이유로 2.10 작동하지 않습니다. 나는 그게 문제라고 추측하고있다. – gourlaysama

답변

2

사용 scala -Xnojline : 당신은 이전 명령을 수정할 수 있도록

scala> val l = readLine 
test 
l: String = test 

그러나 이것은 특정 화살표 키에, 몇 가지 휴식 않습니다. 가능하면

, 당신은 그 기능을 복원 rlwrap scala -Xnojline가 (너무 Cygwin에서 볼 수 있어야한다)를 사용할 수 있습니다. this post

전체 신용.

4

당신은 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 작업을 줄 것이다 .

+0

감사! repl.in.readLine은 완벽하게 작동합니다. reader.readLine은 그렇지 않습니다. Windows에서
, 나는 오류 값 리더 : 찾을 수 없습니다 내 맥에
, 나는 오류 클래스 글로벌 가치 리더 scala.tools.nsc.Global에 액세스 할 수 없습니다
repl.in.readLine입니다 이것이 REPL만을위한 것이라는 점을 강조하면서 어떤 경우에도 제 학생들에게 더 나을 것입니다. –

관련 문제