for
본문의 가장 안쪽에있는 결과를 List[Output]
으로 수집하여 반환 할 수 있습니다. 하지만 yield
을 사용하고 싶습니다. 이 방법은 for-yield
패턴을 사용하여로 변환 할 수있는 방법 :중첩 for 루프를 이해를 위해 변환
def useForComprehension(input : Input): List[Output] = {
for (o <- splitInputIntoPieces(input)) {
for (restResults <- useForComprehension(subtract(input, o))) {
for (w <- f3(o)) {
yield w::restResults // !!!!! Error
}
}
}
}
[예제가 잘못되었다고 생각하게하는 완전히 다른 오류가납니다] (http://scalafiddle.net/console/4e38d30e656da5ae9d3a425109ce9e04), 문제가 다른 것임을 나타내는 코드가 잘못되었다고 생각하게하거나 꽤 오래된 스칼라 버전입니다. 왜냐하면 최근의 스칼라 버전에서는 '{}'의'yield '를 가질 수 없기 때문입니다 (첫 번째 문장이어야합니다). –
yield의 사용법을 배우고 있습니다. 위의 기능을 어떻게 수행 할 수 있습니까 (코드가 컴파일되지 않더라도 제 의도를 얻을 수 있습니까?)'yield '를 올바르게 사용합니까? –
'yield {...}'{yield ...} '가 아니고 –