我使用以下代码收到编译时错误:
val bestModel = model
val bestEvals: List[Double] = null
... <code, including code that initializes bestEvals> ...
(bestModel, bestEvals) = if (allAgreeBetter)
(updatedModel, currentEvals.map {case (eval, _) => eval}.toList)
else
(bestModel, bestEvals)
错误是(是):
Error:(203, 34) ';' expected but '=' found.
(bestModel, bestEvals) = if (allAgreeBetter)
Error:(205, 11) ';' expected but 'else' found.
else
我错过了什么?如果我拿出这个语句,代码编译并运行正常,所以问题特别出现在这个语句中。
答案 0 :(得分:1)
正如前面提到的here,您不能将元组分配给预先存在的引用 - 这是Scala不支持的内容。
唯一可行的类似模式是:
var (bestModel, bestEvals) = if (allAgreeBetter) ...
但是,如果预先声明bestModel
和bestEvals
,那么您将重新声明它们(而不是为它们分配新值)。
希望这有帮助!
干杯。