下面的代码是用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
}
}
这称为模式匹配(例如,您可以在Extractors中检查this)。您提到的代码意味着请分配数组中的第一个(索引0
)值,导致f
,将第二个(索引1
)元素分配给t
,并且数组中不应该有更多或更少的值。 f
和t
都是新变量。
您还提到了与val Array(...)
语法的混淆。它转换为以下方法:scala.Array.unapplySeq[T](x:Array[T])