【问题标题】:Binary operator '+=' connot be applied to operands of type '[Any]' and '[Int]'二元运算符“+=”不能应用于“[Any]”和“[Int]”类型的操作数
【发布时间】:2015-10-04 05:37:54
【问题描述】:

为什么我不能附加testArray2?当我这样做时,我收到错误二进制运算符'+='不能应用于'[Any]'和'[Int]'类型的操作数

var testArray : [Any] = [10,20,45,32]
var testArray2 : [Int] = [10,20,45,32]
var someArray : [Any] = []
someArray += testArray
someArray += testArray2

【问题讨论】:

    标签: swift append


    【解决方案1】:

    嗯,+= 不是这样定义的:

    func +=<T, C: CollectionType where C.Generator.Element == T>(inout lhs: [T], rhs: C)
    

    where C.Generator.Element == T 部分指定您尝试添加的集合中元素的类型(在您的情况下为Int)必须与第一个元素的类型完全匹配数组(Any)。

    【讨论】:

    • 但我仍然可以在someArray 中附加字符串,如下所示:someArray += ["string2"]
    • 因为编译器足够聪明,可以将其解释为 [Any]?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 2016-09-20
    • 2015-08-12
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多