如何将 Some(ArrayBuffer("myString", "String")) 转换为字符串列表

how to convert Some(ArrayBuffer("myString", "String")) to List of string

我有一个方法 return Some(ArrayBuffer("myString", "String")) 在使用 .map() 方法后,如何将它转换为字符串列表?

这就是现在的样子,我想知道我是否可以使用 flatMap 而不是 map?

res.featureList.asScala
      .get("Whitelist")
      .map(
        feature =>
          feature.whitelistedIdWithReasons.asScala
            .map(f => f.accountIdRuleName)
      ).toList.flatten

您可以map进一步:

Some(ArrayBuffer("myString", "String"))
    .map(_.toList)
    .get

您可以使用 orElse 而不是 get 来提供默认值并避免抛出异常。

 Some(ArrayBuffer("myString", "String")).toList.flatten

先把Option[ArrayBuffer[String]]变成List[ArrayBuffer[String]]。然后将 List[ArrayBuffer[String]] 展平为 List[String]

Some(ArrayBuffer("myString", "String")).fold(List.empty[String])(_.toList)