Array
does not conform to the Equatable
protocol, therefore
/// Return `true` iff `x` is in `seq`.
func contains<S : SequenceType where S.Generator.Element : Equatable>(seq: S, x: S.Generator.Element) -> Bool
cannot be used here. You can use the predicate-based variant
/// Return `true` iff an element in `seq` satisfies `predicate`.
func contains<S : SequenceType, L : BooleanType>(seq: S, predicate: @noescape (S.Generator.Element) -> L) -> Bool
instead:
var allCards = [[String]]()
var exp1 = [String]()
if !contains(allCards, { $0 == exp1 } ) {
allCards.append(exp1)
}
because ==
is defined for arrays of Equatable
elements.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…