swift结构体不能有递归包含它的存储属性,cannot have a stored property that recursively contains it

swift结构体不能有递归包含它的存储属性,cannot have a stored property that recursively contains it

struct Dog {
    var name: String
    
    var son: Dog
}

struct Student {
    var p : Person?
    
}
struct Person {
    var name :String
    var son: Student?
    
}

以上代码都会报错,

原因:

 结构体是值类型,创建结构体需要再栈去开辟空间,如果包含循环的结构体属性,将无法开辟内存空间(无限循环开辟空间)

 A开辟空间,A里的B再开辟空间,A里的B里的A再开辟空间。。。。

原文地址:https://www.cnblogs.com/duzhaoquan/p/13581370.html