Почему [SomeStruct] не конвертируется в [Any]?
Учтите следующее:
struct SomeStruct {}
var foo: Any!
let bar: SomeStruct = SomeStruct()
foo = bar // Compiles as expected
var fooArray: [Any] = []
let barArray: [SomeStruct] = []
fooArray = barArray // Does not compile; Cannot assign value of type '[SomeStruct]' to type '[Any]'
Я пытался найти логику, но безуспешно. Стоит упомянуть, если вы измените структуру на класс, она работает отлично.
Можно всегда добавить обходной путь и отобразить каждый объект fooArray и привести их к типу Any, но здесь проблема не в этом. Я ищу объяснение, почему это ведет себя так, как оно есть.
Может кто-нибудь, пожалуйста, объясните это?