【发布时间】:2017-04-08 16:59:47
【问题描述】:
我正在尝试编写一个简单的函数来交换 Scala 中的 (Int, String) 元组。我已经尝试了很多方法,但我不断收到编译器错误,例如:
def swap (p:(Int,String)) : (String,Int) = {
var s = p._1
var t = p._2
var u = (p._2, p.1)
}
[error] found : Unit
[error] required: (String, Int)
[error] }
[error] ^
[error] one error found
为什么它一直说它找到了“单位”类型?我尝试了不同的变体,甚至使用了 Scala 内置的“swap”函数,但我不断收到这类错误,说明我的返回类型不是 (String, Int)。任何建议表示赞赏。谢谢!
【问题讨论】:
-
您的代码有 2 个问题:缺少下划线
_并且您有 3 个作业,但您没有返回任何值。 -
哎呀,下划线,我没有那样运行它,我只是把它放在这里作为我的例子。关于回报 - 我认为 Scala 它会返回我的最后一个任务是什么?
-
是的,这就是问题所在:您方法中的最后一个表达式是一个赋值,而一个赋值没有值,所以这就是返回的内容:一个表示没有值的值。