无法附加到Struct中的自定义协议数组 - Swift

时间:2016-07-24 00:26:21

标签: swift protocols

这是演示此问题的一些演示代码。

protocol Test {}
struct Conforms: Test {}    
struct Testing {
    var t: [Test]
    //The following throws an error
    t.append(Conforms())
}

如果数组是在Struct外部创建的,我可以追加。但是,在Struct内部,会发生此错误。

1 个答案:

答案 0 :(得分:1)

您的错误是预期声明

您无法在结构中使用自由浮动代码。它需要在函数内部:

protocol Test {}

struct Conforms: Test {}

struct Testing {
    var t: [Test] = []

    mutating func foo() {
        t.append(Conforms())
    }
}

var testing = Testing()
testing.foo()