Tag: swift structs

为什么不是可以转换为?

考虑以下几点: 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]' 我一直在试图find这背后的逻辑,但没有运气。 值得一提的是,如果你把这个结构改成一个类,它就可以正常工作。 总是可以添加一个解决方法,映射fooArray的每个对象,并将它们转换为Anytypes,但这不是问题。 我正在寻找一个解释,为什么这是这样的行为。 有人可以解释一下吗? 这个问题导致了我这个问题。