gpt4 book ai didi

ios - 如何快速创建依赖的通用协议(protocol)

转载 作者:搜寻专家 更新时间:2023-10-31 19:31:28 24 4
gpt4 key购买 nike

我正在尝试使用协议(protocol)为将实现它们的结构提供某些规范,但我需要能够使这些规范成为通用的。

例如:

protocol NodeType {
}

protocol EdgeType {
var fromNode: NodeType
var toNode: NodeType
}

问题是两个节点可能是实现协议(protocol) NodeType 的不同结构类型

在一个完美的世界中,我需要这个:

protocol EdgeType<T: NodeType> {
var fromNode: T
var toNode: T
}

确保两个节点是相同的类或结构类型

目前在 swift 中是否可能出现这样的情况?提前致谢

最佳答案

你应该看看 Associated Types 。它们是协议(protocol)的泛型。

protocol NodeType {

}

protocol EdgeType {

associatedtype Node: NodeType

var fromNode: Node { get }
var toNode: Node { get }

}

然后您可以通过指定具体的NodeType实现来符合EdgeType:

struct MyNode: NodeType {

}

struct MyEdge: EdgeType {

associatedtype Node = MyNode

var fromNode: MyNode {
return MyNode()
}

var toNode: MyNode {
return MyNode()
}

}

关于ios - 如何快速创建依赖的通用协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27768096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com