2013-03-06 1 views
1

나는 스칼라에서 내 자신의 getline 버전을 구현하려고 시도 해왔다. 나는 성격에 의해 성격을 읽고 싶다. 가장 가까운 것은 다음과 같습니다.스칼라에서 문자로 getline 읽기 문자를 구현하기

def in_string: List[Char] = { 
io.Source.fromInputStream(System.in) 
    .takeWhile(_ != '\n') 
    .toList 
} 

어떤 제안이 있습니까?

+0

왜 신분 맵을 수행합니까? –

+0

결국 객체에 값을 매핑합니다. – Craysiii

+0

무엇을 요구합니까? – sschaef

답변

2

"순수한"의미는 기능을 의미하는 경우 Martin Ring의 의견을 참조하십시오.

InputStream이 Java에서 온 것이므로 (위와 같은 방법으로는 "순수 Java"를 다시 사용할 수 없다는 의미입니다. Java가 무엇이든간에 어딘가에서 사용하게 될 것입니다).

System.in을 방지하기 위해 이론적으로는 가능 : 떨어져 문자로이 복용하고 다시 라인으로 함께 다시 넣어 아무 의미가

Console.readLine // Reads a whole line for you 

없습니다.

큰 문제는 실제로 문자를 한 줄씩 읽는 대신 문자 단위로 읽는 것입니다. Java에서 제공되는 도구로는 쉽지 않습니다. Scala는 JVM의 꼭대기에 구축 되었기 때문에 실제로 더 잘할 수 없습니다. 예를 들어 SO # 1066318을 참조하십시오.