未发现错误:键入 > 并键入不匹配播放

error not found: type > and type mismatch play

以下代码涉及play框架中的http请求。我在代码中包括了错误...

def requestWebservice(drug: String) : String = {
    val drugEntry = "search" -> drug
    var a = 100
    val request = ws.url(apiUrl).withQueryString(apiKey, drugEntry, 
    apiLimit, apiSkip).get()
    val jsonresults = Await.result(request, 10 seconds).json
    val countEntries: Int = (jsonresults \ "meta" \ "results" \ 
    "total").as[Int]
    //error "not found: type >"

    while (countEntries: Int > a) {
    // type mismatch; found : Unit, required: String (countEntries)
        skip = skip + 100;
        request;
        jsonresults;
        a = a + 100;

    }   
}

我是 scala 和 play 框架的新手,我有一个问题对于有经验的人来说可能微不足道。我正在向 Web 服务器发出一个 http 请求,一次 returns 100 个结果。我试图指向一个给出结果总数的数字,以便如果总数超过 100,我可以用 while 循环重复请求。jsonresults 的结构如下

"meta": {
    "disclaimer": "",
    "terms": "",
    "license": "",
    "last_updated": "",
"results": {
    "skip": 0,
    "limit": 100,
    "total": 1742
}

我知道 Unit 意味着什么都没有返回,可能我没有正确指向正确的字段,但我还能如何指向总数?为什么我会遇到第一个错误,scala 无法识别运算符“>”?我将不胜感激。

您需要同时删除 : Int,因为 countEntries 的类型是自动推断的 - 这意味着编译器会自动确定 countEntries 的类型是一个Int:

while (countEntries > a) {
  ...
}

此外,如果您想查看 Scala 中的官方 while 规范,那就是 here。如果需要,您可以保留类型规范,只需确保将其括在大括号中即可:

while ((countEntries: Int) > a) {
  ...
}