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))
我想列出提供的源路径中的文件夹。它应该首先到 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))