Подтвердить что ты не робот

Почему я не могу создать пустой массив вложенного класса?

Кажется, у меня возникают проблемы с созданием пустого массива вложенного типа класса с использованием синтаксиса стиля [foo]():

// 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]() 

Я что-то недопонимаю, это до моего кофе, но я проверял заметки о выпуске, и я думаю, что вы должны иметь возможность ссылаться на вложенные классы вроде этого - или на ошибку в бета-версии 7?

Это отлично работает в качестве обходного пути:

var foobar: [Wrapper.InsideClass] = []
4b9b3361

Ответ 1

Это определенно выглядит как ошибка в компиляторе, тем более, что вам разрешено создавать экземпляр пустого массива вложенного класса просто отлично; он просто не работает с синтаксисом инициализатора.

Я подниму ошибку. Тем временем, для тех, кто испытывает проблему, вы можете обойти это, используя синтаксис присваивания с пустым массивом и указанным классом для переменной, а не синтаксисом конструктора:

 var foobar: [Wrapper.InsideClass] = []

Ответ 2

Другой способ - использовать конструктор Array<T>().

let arrayOfNestedClass = Array<Wrapper.InsideClass>()