为什么我不能实例化一个嵌套类的空数组?

我似乎有问题使用[foo]()风格语法实例化一个嵌套类types的空数组:

 // Playground - noun: a place where people can play class outsideClass { } class Wrapper { class InsideClass { } } var foo = [outsideClass]() // Works fine // Invalid use of '()' to call a value of non-function type '[Wrapper.InsideClass.Type]' var bar = [Wrapper.InsideClass]() 

这是我误解的东西 – 这是我的咖啡之前,但我已经检查了发行说明,我认为你应该能够引用这样的嵌套类 – 或testing版7中的错误?

这工作得很好,作为一个解决方法:

 var foobar: [Wrapper.InsideClass] = [] 

这绝对看起来像编译器中的一个bug,特别是当你被允许实例化一个嵌套类的空数组时,就好了; 它根本不适用于初始化语法。

我会提出一个错误。 同时,对于遇到此问题的任何人,都可以通过使用赋值语法(具有空数组和指定的variables类)而不是构造函数语法来解决此问题:

  var foobar: [Wrapper.InsideClass] = [] 

另一种方法是使用Array<T>()构造函数。

 let arrayOfNestedClass = Array<Wrapper.InsideClass>()