2016-07-13 39 views
-1
result.map { res => 
     val totaldocs: Int = res.value 
     // do something with this number 
    } 
    //val totaldocs = 60 
    val totalpages:Int = (totaldocs/ipp)+1 

未找到編譯錯誤:值x但我已經聲明瞭它,我的實現有什麼問題,抱歉我是新玩框架和Scala編程語言。編譯錯誤沒有找到:值x但我宣佈它已經有什麼問題

enter image description here

+1

可以提供完整的編譯器輸出?用行 – pedrorijo91

+0

這段代碼中沒有提到'x'。它會給出一個不同的錯誤。當詢問編譯錯誤時,請務必確保您使用的是相同版本的代碼,從而爲您提供錯誤,並提供完整的消息。 –

+0

我更新了我的問題 – kn3l

回答

3

,我會說這條線的問題是:

val totalpages:Int = (totaldocs/ipp)+1

因爲totaldocs只在map範圍內定義

也許你想要的東西,如:

private def getTotalPages(query:BSONDocument, ipp:Int) (implicit ec: ExecutionContext) = { 
    val key = collectionName + ":" + BSONDocument.pretty(query) 
    Logger.debug("Query key = "+key) 
    val command = Count(query) 
    val result: Future[CountResult] = collection.runCommand(command) 
    result.map { res => 
     val totaldocs: Int = res.value 
     // do something with this number 

     val totalpages:Int = (totaldocs/ipp)+1 
     Logger.debug(s"Total docs $totaldocs, Total pages $totalpages, Items per page, $ipp") 
     totalpages 
    } 
    } 

但現在它會返回一個Future [Int],你將不得不在處理調用者的未來。

注意:這僅僅是一個解決方案,這取決於你的代碼,可能不是最充分的一個

+0

遞歸值totalDocs需要類型 – kn3l

+0

更新了答案@steve – pedrorijo91

+0

你的意思是:你將不得不在處理調用者的未來。 – kn3l

相關問題