gpt4 book ai didi

swift - [Foo.Type] 数组不存在 indexOf(Element)

转载 作者:搜寻专家 更新时间:2023-11-01 06:43:40 25 4
gpt4 key购买 nike

Swift 的 CollectionType 提供了两种 indexOf 方法:一种直接获取元素,另一种获取谓词函数。如果我有一个类型为 [Foo.Type] 的数组(对于任何类 Foo),前者不存在;只有 indexOf 的谓词版本。这是为什么?

最佳答案

采用元素的indexOf 方法要求该元素必须符合Equatable 协议(protocol)。它是在受约束的协议(protocol)扩展中定义的,因此它仅在该约束成立时显示。

元类型(形式为 SomeType.Type)本身不能符合协议(protocol)(当前为 Swift 2.1)。因此,即使您可以在全局范围内定义对元类型进行操作的 == 运算符,您实际上也无法使元类型符合 Equatable 协议(protocol)。这是一个已知的语言限制。

在某些情况下(例如,将类型用作字典中的键时)您可以使用标准库 ObjectIdentifier键入以解决此限制。

关于swift - [Foo.Type] 数组不存在 indexOf(Element),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32854219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com