在Python中,可以执行以下操作:
def blarg():
return "blargidy", "blarg"
i, j = blargh()
Run Code Online (Sandbox Code Playgroud)
scala中是否有类似的东西?
Phi*_*ppe 31
你可以返回一个元组:
def blarg = ("blargidy", "blarg")
val (i, j) = blarg
Run Code Online (Sandbox Code Playgroud)
请注意并行变量赋值的模式匹配语法:这适用于任何模式,而不仅仅适用于元组.例如:
val list = 1 :: 2 :: 3 :: Nil
val x :: y = list // x = 1 and y = 2 :: 3 :: Nil
Run Code Online (Sandbox Code Playgroud)
小智 6
我意识到这是一个老问题,但还有另一种方法可以达到同样的目的.我不知道它是否有任何缺点,但优点是返回的值是"命名的",使代码更加不言自明.
(在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
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7559 次 |
最近记录: |