找不到错误:输入>和类型不匹配播放

时间:2017-03-31 11:31:12

标签: scala playframework-2.5

以下代码涉及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请求,一次返回100个结果。我试图指出一个给出结果总数的数字,这样如果总数超过100,我可以用while循环重复请求.jsonresults的结构如下

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

我知道单位意味着什么都没有回来,可能我没有正确地指向正确的领域,但我怎么能指向总数呢?为什么我会收到第一个错误,scala没有识别运算符">"?我会感激一些帮助。

1 个答案:

答案 0 :(得分:0)

您需要删除while中的: Int,因为countEntries的类型会自动推断 - 这意味着编译器会自动确定countEntries的类型是{{ 1}}:

Int

此外,如果您想查看Scala中的官方while (countEntries > a) { ... } 规范,那么它是here。如果需要,可以保留类型规范,只需确保将其包装在大括号之间:

while