【问题标题】:Play scala functions return multiple items multiple timesPlay scala函数多次返回多个项目
【发布时间】:2014-04-23 10:28:28
【问题描述】:

我有一个返回 Long 的函数和一个 Json 对象,我想使用相同的变量名多次调用它。

def returnMultipleItems (): (Long, JsObject) = {

    val number:Long = 123

    val json = Json.obj(
        "Name" -> "Tom",
        "age" -> 42
    )

    return(number, json)
}

当像这样调用函数时,它工作正常。

var (number, json) = returnMultipleItems    
println("Number = " + number, ", Json = " + json)

我想使用相同的变量名两次或多次调用该函数。有了这个,我会收到像“;”这样的错误消息应该是,但找到了“=”。

var number:Long = 0
var json:JsObject = Json.obj()

(number, json) = returnMultipleItems // Call the function

(number, json) = returnMultipleItems // Call the function again

【问题讨论】:

    标签: json scala playframework-2.0


    【解决方案1】:

    可能不是您要查找的内容,但您可以将变量分配给元组(而不是内容),例如

    var numJson = returnMultipleItems
    println("Number = " + numJson._1, ", Json = " + numJson._2)
    numJson = returnMultipleItems
    println("Number = " + numJson._1, ", Json = " + numJson._2)
    

    【讨论】:

      【解决方案2】:

      Scala 不接受多变量赋值。但是,您的第一个示例有效,因为 Scala 将表单 var (x, y) = (1, 2) 解释为 模式匹配

      完整的解释是here,解决方法是here

      【讨论】:

        猜你喜欢
        • 2021-12-21
        • 2018-07-16
        • 2023-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-27
        • 2015-01-06
        相关资源
        最近更新 更多