我可以將最內部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),這讓我覺得你的例子是錯誤的(顯示你的問題的代碼不在那個問題中),或者你有相當老的scala版本,因爲在最近的scala版本中,你不能在'{}'裏面有'yield'(它必須是第一條語句) – 2014-11-02 04:58:39
我正在學習yield的使用。我怎麼才能完成上述功能(儘管代碼不能編譯,你能得到我的意圖嗎?)正確使用yield? – 2014-11-02 15:27:21
寫'yield {...}'不是'{yield ...}' – 2014-11-04 05:47:56