我在链接列表中搜索特定的Int值,但是收到错误" Binary operator!=不能应用于两个' Int'操作数。
我的代码:
//node.data is an Int
//someInt is an Int
if node.data != someInt {...}
我认为我可以比较Int
值,因为Int
符合Equatable
。有一个更好的方法吗?
完整代码:
class Node<Int> {
var data: Int
var next: Node? = nil
init(data: Int) {
self.data = data
}
}
class LinkedList<Int> {
var head: Node<Int>?
func find(someInt: Int) {
var partitioningNode = head
//find node
guard var node = head else {
print("empy linked list")
return
}
if node.data != someInt {
partitioningNode = node
...
}
}
}
答案 0 :(得分:1)
在绝大多数情况下,像“二元运算符......不能应用于两个'X'操作数”这样的错误,当它绝对可以应用于这些类型时,只是一个错误在诊断消息生成器中。您可能在该区域中存在其他类型错误。没有任何上下文(我们需要上下文),我会确保你记得从编码函数返回一些东西。有时这意味着“我想找到一个!=
,在这种情况下会返回Float
而不是Bool
,而我找不到,所以我抱怨{ {1}}而是。“
但是没有MCVE,就没有办法进一步调试它。你附近有一个类型错误。
答案 1 :(得分:0)
我发现了这个问题......最初我的LinkedList和LinkedListNode类定义了一个通用的<T>
。在重构时,我注意到不再需要泛型,并且节点中的数据只需要是一个Int,因此我错误地将<T>
替换为<Int>
,从而在尝试比较两个时导致错误&#34;整数&#34;