Arrays 为什么某些元素类型的contains(element:element)似乎不存在?

Arrays 为什么某些元素类型的contains(element:element)似乎不存在?,arrays,swift4,contains,Arrays,Swift4,Contains,我试图使用Swift的Array.contains(element:element)函数,但它似乎只适用于element属于某些(非复杂)类型的数组 例如,游乐场中的以下程序生成错误myplayerly。游乐场:11:24:错误:调用中缺少参数标签“where:”(请注意,它仅在秒时失败 我知道contains(其中:)方法,但我只想使用contains(元素:)one 函数的文档似乎也没有解释这一点: 所以我的问题是为什么contains(element:)方法似乎只为某些类型的元素定义。或者

我试图使用Swift的
Array.contains(element:element)
函数,但它似乎只适用于
element
属于某些(非复杂)类型的数组

例如,游乐场中的以下程序生成错误
myplayerly。游乐场:11:24:错误:调用中缺少参数标签“where:”
(请注意,它仅在秒时失败

我知道
contains(其中:)
方法,但我只想使用
contains(元素:)
one

函数的文档似乎也没有解释这一点:


所以我的问题是为什么
contains(element:)
方法似乎只为某些类型的
元素定义。或者
元素
可能需要实现特定的协议吗?

元素
必须符合
均衡
<代码>字符串
有,机器人没有。谢谢@vadian你知道苹果有没有关于这个的文档吗?⌃⌘-单击法律
包含的
。您将看到声明。向上滚动到扩展名的开头。对
equalable
有限制。我还建议在Xcode中始终使用代码完成。在非法的
contains
Xcode不允许您使用
contains(u.element)
class Robot {
}

class N10: Robot {
}

class Sphinx: Robot {
}

let robotNames = ["N10", "Sphinx"]
let robots: [Robot.Type] = [type(of: N10), type(of: Sphinx)]

if robotNames.contains("N10") {
    print("name is there")
}

if robots.contains(type(of: N10)) {
    print("type is there")
}