当前位置: 首页 > 面试题库 >

检查自定义对象数组是否包含特定的自定义对象

晋言
2023-03-14
问题内容

说我的Person课很简单

class Person {
    var name:String
    init(name:String) {
        self.name = name
    }
}

我希望将此类Persons 的集合存储在People类的属性中,该属性是类型为Person的数组

class People {
    var list:[Person] = []
}

也许我做到这一点如下

var alex = Person(name:"Alex")
var people = People()
people.list.append(alex)

问题:请问我如何检查people.list是否包含实例alex?

我很想尝试的简单尝试 true

people.list.contains(alex)

称一个错误 "cannot convert value of type 'Person' to expected argument type '@noescape (Person) throws -> Bool'"


问题答案:

有两个contains功能

extension SequenceType where Generator.Element : Equatable {
    /// Return `true` iff `element` is in `self`.
    @warn_unused_result
    public func contains(element: Self.Generator.Element) -> Bool
}

extension SequenceType {
    /// Return `true` iff an element in `self` satisfies `predicate`.
    @warn_unused_result
    public func contains(@noescape predicate: (Self.Generator.Element) throws -> Bool) rethrows -> Bool
}

编译器在抱怨是因为编译器知道Person不是Equatable,因此contains需要一个谓词,predicatealex不是谓词。

如果阵列中的人员是Equatable(不是),则可以使用:

person.list.contains(alex)

由于它们不相等,因此可以将第二个contains函数与以下函数一起使用:

person.list.contains { $0.name == alex.name }

或正如Martin R所指出的,基于“身份”:

person.list.contains { $0 === alex }

或者您可以将Person其设为Equatable(基于name或身份)。



 类似资料:
  • 是否可以在OpenAPI中为组件对象指定自定义名称? 我目前有两个组件对象指定请求模式: 在endpoint描述中,我将这些模式引用如下: 当我发布yaml文件时,UI在选择选项卡中显示Request est1和Request est2,其中包含名称“Request est1”和“Request est2”。是否可以为它们分配自定义名称,以便UI显示自定义名称?例如“自定义名称请求1”和“自定义名

  • 问题内容: 我正在使用JSON.NET序列化一些对象,并且我想知道是否有一种简单的方法可以仅针对特定对象覆盖默认json.net转换器? 目前我有以下课程: JSON.NET当前将上述序列化为: 是否可以仅通过特定方式将其格式化为: 我对JSON.NET有点陌生。我想知道上面是否与编写自定义转换器有关。我找不到任何有关如何编写示例的具体示例。如果有人可以指出我的具体信息,我将不胜感激。 我需要找到

  • 我在创建包含自定义对象数组的数组时遇到了问题。 出于多种原因,我希望将容器创建为可比较数组的标准数组: 其中包含的每个自定义对象数组必须具有不同的长度 自定义对象数组内置了自动排序工具,这些工具不适合我希望它们适合的较大包含数组 自定义对象数组可以工作,并且已经过彻底测试。 我在创建较大对象时收到的例外情况是: 线程“main”中出现异常java.lang.ClassCastException:

  • 请看do while循环,我认为注释是不言自明的。我想检查该集合是否设置了所有具有符号a、b、c、d的卡片(借助数组或其他任何东西实现它)。

  • 当我试图在Github上使用自己的指南测试tenstorFlow目标检测API时发生了一个错误我在运行他们指南中提到的测试脚本时遇到了以下错误 python对象检测/构建器/模型构建器测试。py/home/appu/anaconda3/envs/ml/lib/python3。6/importlib/_引导。py:219:RuntimeWarning:compiletime模块“tensorflow

  • 我正在应用程序中使用Hazelcast作为共享映射。我的地图是这样的: 第144行: 这里是我的类: 很酷,在重新编译Hazelcast之后,使用这个新的jar,我可以使用普通SQL访问查询。但对于pagingQueries,我有一些错误。