Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Swift中定义指向另一个具有相同类型的结构的泛型结构?_Ios_Swift_Swift5 - Fatal编程技术网

Ios 如何在Swift中定义指向另一个具有相同类型的结构的泛型结构?

Ios 如何在Swift中定义指向另一个具有相同类型的结构的泛型结构?,ios,swift,swift5,Ios,Swift,Swift5,我希望有一个简单的通用结构,如下所示: struct节点{ let id:String 让数据:T 让上一个节点:节点? } 不幸的是,这会产生以下错误: 我试图实现一个具有关联类型的协议,但这也没有帮助。 您知道编写指向同一类型对象的泛型结构的最简单方法是什么吗?实际上,对这种数据结构使用结构并不是很有用。节点基本上是引用,而不是值。如果两个对象共享上一个节点,则该节点应为同一节点。这就是引用类型的含义,这意味着您应该在这里使用类。(在Swift的早期,这是一个非常常见的错误,当时我们都用

我希望有一个简单的通用结构,如下所示:

struct节点{
let id:String
让数据:T
让上一个节点:节点?
}
不幸的是,这会产生以下错误:

我试图实现一个具有关联类型的协议,但这也没有帮助。


您知道编写指向同一类型对象的泛型结构的最简单方法是什么吗?

实际上,对这种数据结构使用结构并不是很有用。节点基本上是引用,而不是值。如果两个对象共享上一个节点,则该节点应为同一节点。这就是引用类型的含义,这意味着您应该在这里使用类。(在Swift的早期,这是一个非常常见的错误,当时我们都用完了,试图用结构和枚举构建Haskell风格的数据结构,我们花了很长时间才意识到这不仅非常困难,甚至是不正确的。Haskell值是引用类型。它们只是不可变的。)