任务[列表[列表[A]]到任务[A],如果列表有元素



我有一个返回任务[列表[列表[A]]的方法,如果列表大于0,我需要转换为任务[A]

def method():Task[List[List[A]]] = {}
val d:Task[List[A]] = method().map(_.flatten)

如何获取 任务[A] 是 A 的列表,如果内部方法有超过 0 个元素

我可以转换为任务[列表[A]],如上所示

您正在以直观的方式将List[List[A]]展平为List[A],所有这些都包裹在Task中。如果您提供了从List[A]A的方法(编辑:见下文(,则可以从任务的映射调用它,如下所示。

def method():Task[List[List[A]]] = {}
def listToItem(list: List[A]): A = ???
def d: Task[A] = method().map(_.flatten).map(listToItem(_))

你说你想让listToItem拿列表的第一个元素。不幸的是,如果列表为空,这样的函数将不知道该怎么做。您可以使用list.head,如果列表为空,它将引发异常,或者您可以使用list.headOption,这将返回Option[T]而不是T

相关内容

  • 没有找到相关文章

最新更新