下面的代码是用scala编写的,
val Array(f, t) = readLine().trim().split(" +").map(_.toInt)
我无法理解val Array(f, t)
。
对我来说,Array
是班级。因此,我们只能创建对象,并且可以使用该对象访问类的功能。否则,我们可以访问Array类的静态方法而无需为其创建对象。
-斯卡拉
def main(args: Array[String]): Unit = {
val n = readInt
val m = readInt
val f = Array.ofDim[Int](100000)
Arrays.fill(f, -1)
for (e <- 1 to m) {
val Array(f, t) = readLine().trim().split(" +").map(_.toInt)
// Code continues
}
}
答案 0 :(得分:3)
这称为模式匹配(例如,您可以在提取器上检查this)。您提到的代码意味着,请在数组中将结果的第一个(索引0
分配给f
,将第二个(索引1
)分配给t
数组中的值不应更多或更少。 f
和t
都是新变量。
您还提到了val Array(...)
语法的困惑。转换为以下方法:scala.Array.unapplySeq[T](x:Array[T])