【发布时间】:2014-05-10 18:31:15
【问题描述】:
给定这个 Scala 函数
def mv: (Int,Int,Int) = {
(1,2,3)
}
以下作品
val (i,j,k) = mv
但这不是
var i = 0
var j = 0
var k = 0
(i,j,k) = mv
<console>:1: error: ';' expected but '=' found.
(i,j,k) = mv
^
这意味着分配给多个变量仅在初始化时才有效?或者我写错了?试图找到一种方法从函数返回多个值并将这些值分配给类中的实例变量,这意味着在调用函数时无法初始化变量,因为它们是在所有方法之外声明的。
class C {
var i = 0
var j = 0
var k = 0
def mv: (Int,Int,Int) = {
(1,2,3)
}
def changeState: Unit = {
(i,j,k) = mv
}
}
以上行不通。我可以创建一个案例类来保存返回值,但我想做一些这样的工作,因为它看起来更清楚。
【问题讨论】:
-
请注意在初始提案中更新以下 cmets。
标签: scala