2016-06-23 3 views
-4

내가 스칼라 꽤 새로운 해요 다음과 같은 구성을 마련 :yeild와 함께 <- scala에서 의미하는 것은 무엇입니까?

def getList(): List[String] = { 
    //compiled code 
} 

내가 꽤 코드의 첫 번째 부분에서 무슨 일이 일어나고 있는지 이해하지

val value= 
    for { 
    p1 <- getList() 
    p2 <- parser.parse(p1) //parser.parse(String) Returns some useful value 
    } yield p2 
value.asJava 

. 스칼라 왼쪽 화살표 연산자을 찾지 못했습니다. 설명 할 수 없니?

+0

참조 http://docs.scala-lang.org/tutorials/FAQ/yield.html –

+2

나는 왜 누군가가 스칼라를 배우기 시작하고 (온라인 또는 전자 서적 또는 죽은 글자가 없는지 이해할 수 없다. 트리) 자습서. 그것들 모두는 '이익을 위해'설명 할 것입니다. –

답변

1
for { 
    p1 <- getList() 
    p2 <- parser.parse(p1) 
    } yield p2 

은 (하지 테스트 psudocode)하는 것과 같습니다

var result: List = Nil 
val value = { 
    foreach(p1 in getList()){ 
    foreach(p2 in parser.parse(p1)){ 
     result ::: p2 
    } 
    } 
    result 
    } 

그러나 다른 사람들이 말했듯이, 당신은 쉽게이 스칼라의 for 이해에 독서에 의해이를 발견 할 수있다.

+1

이것은 본질적으로 단지'getList(). flatMap (parser.parse)'인 무언가를위한 많은 psuedocode입니다. –

+1

@Peter를 알고 있습니다. 나는 OO 방식으로 그것을 보여 주려고했다. –

관련 문제