加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么我不能检查我的数组数组是否包含特定的数组?

发布时间:2020-12-14 05:46:24 所属栏目:百科 来源:网络整理
导读:我正在尝试检查一个数组数组是否包含一个字符串数组.我的错误消息说: “找不到’contains’的重载,它接受类型'([([(String)])]),[(String)])”的参数列表 var allCards = [[String]]()var exp1 = [String]()if !contains(allcards,exp1) { allCards.append(
我正在尝试检查一个数组数组是否包含一个字符串数组.我的错误消息说:

“找不到’contains’的重载,它接受类型'([([(String)])]),[(String)])”的参数列表

var allCards = [[String]]()
var exp1 = [String]()

if !contains(allcards,exp1) {
    allCards.append(exp1)
}

这是怎么回事!?

因此,Array不符合Equatable协议
/// Return `true` iff `x` is in `seq`.
func contains<S : SequenceType where S.Generator.Element : Equatable>(seq: S,x: S.Generator.Element) -> Bool

不能在这里使用.您可以使用基于谓词的变体

/// Return `true` iff an element in `seq` satisfies `predicate`.
func contains<S : SequenceType,L : BooleanType>(seq: S,predicate: @noescape (S.Generator.Element) -> L) -> Bool

代替:

var allCards = [[String]]()
var exp1 = [String]()

if !contains(allCards,{ $0 == exp1 } ) {
    allCards.append(exp1)
}

因为==是为Equatable元素的数组定义的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读