Por que [SomeStruct] não é conversível em [Qualquer]?
Considere o seguinte:
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]'
Eu tenho tentado encontrar a lógica por trás disso, mas sem sorte. Vale ressaltar que se você alterar a estrutura para uma classe, ela funcionará perfeitamente.
Sempre se pode adicionar uma solução alternativa e mapear cada objeto do fooArray e convertê-los no tipo Any, mas esse não é o problema aqui. Estou procurando uma explicação sobre por que isso está se comportando como é.
Alguém pode explicar isso?