1
我想要做的基本上都是在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中有类似的方法吗? 我知道这可以通过斯卡拉
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
还曾。
它的工作。谢谢。 – Naetmul
@Naetmul:没问题,很乐意帮忙。 – sberry
不错,但它似乎产生matcherror,如果列表没有大小3. –