嵌套结构类型的Swift数组(count,repeatedValue)

时间:2015-11-19 12:17:34

标签: swift

对Swift相对较新,并且在最简单的事情上挣扎。我希望预先分配一组设置为默认值的结构。只要struct不嵌套在另一个类型中,这就可以工作。有任何想法吗?这是一个简化的例子:

struct PlainStruct
{
    var yo:Float = 0.0
}

class WrapperClass
{
    struct NestedStruct
    {
        var yo:Float = 0.0
    }
}

// Works just fine
var a = [PlainStruct](count:2, repeatedValue:PlainStruct())

// Error - Cannot call value of non-function type '[WrapperClass.NestedStruct.Type]'
var b = [WrapperClass.NestedStruct](count:2, repeatedValue:WrapperClass.NestedStruct())

由于

1 个答案:

答案 0 :(得分:4)

如果您创建了一个typealias,它会起作用。例如:

struct PlainStruct
{
    var yo:Float = 0.0
}

class WrapperClass
{
    struct NestedStruct
    {
        var yo:Float = 0.0
    }
}

typealias Nested = WrapperClass.NestedStruct

var b = [Nested](count:2, repeatedValue:WrapperClass.NestedStruct())

至于为什么我们必须这样做...我不想在没有证据的情况下说这个但是我认为它是编译器错误,我相信我们应该能够使用您的原始版本。