当前位置:  开发笔记 > 编程语言 > 正文

在条件中分配多个val

如何解决《在条件中分配多个val》经验,为你挑选了1个好方法。

在Java中,我经常发现自己在条件的每个分支中分配多个最终变量,如下所示:

final _ x;
final _ y;
if (_) {
  x = _;
  y = _;
} else {
  x = _;
  y = _;
}

在Scala中我知道可以使用该技术分配单个val:

val x = {
  if (_) {
    _;
  } else {
    _;
  }
}

实际上,可以修改上述方法以通过使块返回与变量模式匹配的元组来分配多个变量,例如:

{
  if (_) {
    _;
  } else {
    _;
  }
} match { case (x, y) => _ }

但我发现这种语法很尴尬.有没有更简单的方法,理想情况下类似于Java代码,做我想要的?



1> jwvh..:
scala> val (x,y) = if (true) (3,"blah") else (1,"blis")
x: Int = 3
y: String = blah

它看起来像一个元组赋值,但它实际上分配给多个val.(好吧,它实际上都是.)

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有