Scala - 在 foreach 内的数组中获取函数结果

Scala - Get function result in array inside foreach

我想列出提供的源路径中的文件夹。它应该首先到 2021 目录获取路径并存储在数组中,然后再到 2022 文件夹。

然后我需要在 foreach 之外访问这个数组并传递给其他一些函数。无法弄清楚我该怎么做。请帮忙。

val SourcePaths:Array[String] = Array("abfss://cont@mystorage.dfs.core.windows.net/testdata/2021/","abfss://cont@mystorage.dfs.core.windows.net/testdata/2022/")

SourcePaths.foreach(path=>{
  var allDirPaths:Array[String] = listDirectories(path,true)
})

使用 map 而不是 foreach(另外,不要使用数组,它们很糟糕):

val subfolders: Seq[Seq[String]] = sourcePaths.toSeq.map(listDirectories(_, true).toSeq)

或者 flatMap 如果您希望所有子文件夹作为一个平面列表:

val subfolders: Seq[String] = sourceParths.toSeq.flatMap(listDirectories(_, true))