Swift相关类型不明确

问题描述

我写了一个具有两种关联类型的协议。当我想在函数的默认实现中创建关联类型之一的实例时,编译器会抱怨:“表达式的类型不明确,没有更多上下文”

protocol Node: Equatable {
    
    associatedtype Identifier: Equatable
    associatedtype SomeEdge: Edge
    
    var identifier: Identifier { get }
    var edges: [SomeEdge] { get set }
    
    init(_ identifier: Identifier)
    
    mutating func addEdge(to: Self)
    mutating func delete(_: SomeEdge)
}

extension Node {
    mutating func addEdge(to other: Self) {
        let edge = SomeEdge(source: self,destination: other)    // Type of expression is ambiguous without more context
        
        guard !edges.contains(edge) else {
            return
        }
        
        edges.append(edge)
    }
    
    mutating func delete(_ edge: SomeEdge) {
        guard let index = edges.firstIndex(of: edge) else {
            return
        }
        
        edges.remove(at: index)
    }
}

如何解决此问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)