加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

有没有办法从Scala中的数组或List初始化多个变量?

发布时间:2020-12-16 09:08:29 所属栏目:安全 来源:网络整理
导读:我想要做的基本上是 Java代码中的以下内容: String[] tempStrs = generateStrings();final int hour = Integer.parseInt(tempStrs[0]);final int minute = Integer.parseInt(tempStrs[1]);final int second = Integer.parseInt(tempStrs[2]); 但是,tempStrs
我想要做的基本上是 Java代码中的以下内容:

String[] tempStrs = generateStrings();
final int hour = Integer.parseInt(tempStrs[0]);
final int minute = Integer.parseInt(tempStrs[1]);
final int second = Integer.parseInt(tempStrs[2]);

但是,tempStrs只是一个临时变量,不再使用.然后,这可以用F#中的以下代码表示:

let [| hour; minute; second |] = Array.map (fun x -> Int32.Parse(x)) (generateStrings())

在Scala中有类似的方法吗?
我知道这可以在Scala中完成

val tempInts = generateStrings().map(_.toInt)
val hour = tempInts(0)
val minute = tempInts(1)
val second = tempInts(2)

但是有没有像F#这样的短路(没有临时变量)?

编辑:

我用了

var Array(hour,minute,second) = generateStrings().map(_.toInt)

当然,使用val而不是var也有效.

解决方法

这个怎么样:

scala> val numbers = List(1,2,3)
numbers: List[Int] = List(1,3)

scala> val List(hours,minutes,seconds) = numbers
hours: Int = 1
minutes: Int = 2
seconds: Int = 3

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读