您好我是Swift的新手,我试图实现一个Graph结构。我定义了Node和Edge结构,现在我试图检查图中是否存在特定的边。类及相关函数是这样的:Swift数组自定义对象包含:需要插入'其中:'
class Graph<T: Equatable> {
private var storedNodes = [Node]()
private var storedEdges = [Edge]()
func containsSimpleGraphEdge(targetEdge: Edge) -> Bool {
let simpleGraphEdges = self.storedEdges.map({edge in (edge.source, edge.dest)})
let targetSimpleGraphEdge = (targetEdge.source, targetEdge.dest)
return simpleGraphEdges.contains(targetSimpleGraphEdge)
}
但Xcode的抱怨,我应该插入“其中:”在最后陈述中包含。我可以知道这是为什么吗?我的目的只是检查图形中是否存在边缘。映射到元组是因为在Edge实现中还有其他属性;这里只需要检查源节点和目标节点。
什么是'targetSimpleEdge'? – Hamish
一般解释:你是否想将'targetSimpleGraphEdge'传递给'contains'函数? – Keiwan
你应该让你的'Edge'符合'Equatable',这样你就可以摆脱所有这些元组绒毛 – Alexander