Arrays 为什么某些元素类型的contains(element:element)似乎不存在?
我试图使用Swift的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:)方法似乎只为某些类型的元素定义。或者
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")
}