当前位置: 首页 > 知识库问答 >
问题:

用于惰性集合的Swift 4.1 compactMap

许天逸
2023-03-14

在Swift 4.1之前,我使用平面地图从集合中删除nil值。现在此方法已弃用,我需要将其替换为compactMap。有时我使用带有惰性集合的平面地图来优化我的代码,如下所示:

let optionalIntegers : [Int?] = [1, 2, nil, 3, 4, nil, nil, 5]
optionalIntegers.lazy.flatMap { $0 }.forEach { print("Item \($0 * 10)") }

如果我使用compactMap而不是平映射,它会有相同的效果吗?在方法的留档中,我找到了对map过滤器的引用。

共有1个答案

杜俊楚
2023-03-14

是的,绝对一样。他们只是决定消除平地图函数的歧义,并将其中一个重命名为compactMap,以免混淆开发人员。

建议如下:介绍顺序。compactMap(\u:)

我们建议反对有争议的序列版本。flatMap方法,并在不同的、可能更具描述性的名称下提供相同的功能。

 类似资料:
  • 我正在开发一个Struts2 Spring Hibernate webapp,我需要在检索一个对象或该对象的集合后初始化一个惰性集合。 用例 我有一个团队模型,其关系被热切地加载为员工(我认为这显然是一个集合)。反过来,员工模型有一个懒惰的关系注册表,我只需要一些特定的操作,所以我根本不需要急切地加载它。 现在。我调用我的(用Spring注入到我的Struts2控制器中),以便检索一个特定的已经加

  • 我有两个大表(每个表>一亿行),让我们把它们称为Parent和Child(Parent与Child有一个懒散的一对多关系)。当我使用联接提取时,查询速度非常慢,而且我还得到一个Hibernate警告“HH000104 firstresult maxresults specified with collection fetch Application in Memory”,因为我使用了一个限制。 因

  • 如果我有一个实体和一些惰性集合(、、,...),并且希望编写一个JpaRepository-method,该方法为我提供所有的人,这些人都渴望获取,这可能吗? 我知道人们可以在单个物体上做到这一点,但这在某种程度上可以在人的集合上做到吗?

  • 父对象放在spring控制器的@SessionAttributes中,这是原因吗? 即使我只合并子列表,合并(childList),它也创建新记录而不是更新。

  • 问题内容: 在我的JavaFX应用程序中,当我对EmbeddedId类使用 Non Lazy Collection 选项时,为了保持双向关系,它将产生以下异常。经过几个小时的工作后,我仍然无法解决它。实体类如下。谢谢。 EmbeddedId类 WorkflowStep实体 (带有EmbeddedId) WfScriptTemplate实体 (带有双向关系) PostgreSQL异常 MySQL异常