Я понимаю, что это старый вопрос, но есть и другой способ добиться того же. Я не знаю, есть ли в этом недостаток, но преимущество в том, что возвращаемые значения «именуются», что делает код немного более понятным.
(проверено на scala 2.11)
package test.scala.misc
object TestReturnMultipleNamedValues extends App {
val s = getMultipleNamedValues
println(s"changed=${s.dsChanged} level=${s.dsLevel}")
/** Returns an anonymous structure with named members.
* */
def getMultipleNamedValues() : {val dsChanged : Boolean;val dsLevel : Int} = {
new {
val dsChanged = true
val dsLevel = 1
}
}
}