swift代码:
struct ListNode {
public var val: Int
public var next: ListNode?
}
报错: error:Value type 'ListNode' cannot have a stored property that recursively contains it
C++代码:
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
swift中结构体不能引用自身,结构体为值类型,当值类型生成时其引用自身的话则无法确定其大小,所以无法确定开辟空间的大小,而引用类型的大小与其对象本身大小无关,所需空间在生成时就可以确定,所以引用类型可以持有自身类型的属性。C/C++中的持有是通过指针的方式进行的持有,属于通过引用的方式持有
注:以上均属自己推断,如有错误欢迎拍砖
网友评论