问题标签 [equatable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
476 浏览

swift - Swift work around to make `AnyObject.Type` conform to `Equatable`?

I would like to make AnyClass (AKA AnyObject.Type) conform to Equatable so that when I have an array with AnyClass elements (Array<AnyClass>), I can call remove(Element:), but this requires Element to conform to Equatable.

0 投票
1 回答
490 浏览

arrays - Swift 通用数组 Equatable 强制转换

我有一个包含通用数组的 AAA 类。由于Item可能不是 Equatable,所以我不将其编码为class AAA<Item: Equatable>.

我想在 AAA 类中添加一个删除函数,该函数在 Item 为 Equatable 时可用。通过调用这个函数,它将调用数组扩展中的一个函数。

由于默认情况下Item不是 Equatable,因此以下代码无法编译。

在下一步中,我尝试将项目项目转换为 Equatable。但是,我找不到任何方法来检查items数组并将其转换为具有 Equatable 元素的数组。

有什么想法或建议吗?谢谢

0 投票
3 回答
2080 浏览

swift - Index(of:) 和 Equatable 协议

为了使用index(of:),我需要使 Person 符合 Equatable 协议。据我所知,Equatable 协议允许比较 2 个实例是否相等。查找索引和比较是否相等之间有什么关系?为什么我必须遵守 Equatable 协议才能使用index(of:)

要采用 Equatable 协议,我必须将(==)运算符实现为静态方法:

我没有在这里比较任何 Person 实例的相等性,为什么我还需要return (lhs.name == rhs.name) && (lhs.age == rhs.age)?它是干什么用的?有什么关系index(of:)吗?

抱歉问了这个愚蠢的问题。

0 投票
1 回答
54 浏览

arrays - 如何使用 Equatable 创建扩展以删除自定义数组元素?

我创建了自定义数组类型。现在我想在其中再添加一个方法,它可以通过将实际元素作为参数传递来删除数组的元素。我知道如果我们将自定义数组的扩展添加为 Equitable,就可以实现这一点。

下面是我的代理数组代码:

下面是我对代理数组的扩展

0 投票
2 回答
3132 浏览

swift - AnyObject 尝试强制转换为 Equatable

我有一Equatable堂课

但我想将 try varvalue转换为 Equatable,以便获得软等值结果

此代码捕获有关 Generic Equatable 的编译错误

我怎样才能为这门课做正确的 Equatable?

UPD

我想在我的故事板中使用我ItemUITableViewCellin。我无法创建通用UITableViewCell. 如果我尝试将 Item 作为Generic<T: Equatable>类,我将被迫在我的单元格中指定类型,

但我想将 Item in Cells 用于任何对象

0 投票
2 回答
2892 浏览

swift - 泛型函数内的 Swift Equatable 泛型类型比较

我有一个Node像这样的二叉树类:

这些值需要是平等的。

我可以像这样测试公平性:

哪个工作正常,c: true

但是当我编写一个使用节点公平性的通用函数时,我得到了错误:

错误:

我不确定为什么编译器似乎不知道为什么这些值TEquatable或者为什么它不认为TonleftNodeT.node

编码:

按预期给出错误。

进一步研究,它与函数无关,因为当我尝试代码时:

我犯了同样的错误

0 投票
1 回答
639 浏览

swift3 - 斯威夫特 | 用 NSObject 设置

我正在尝试使用自定义对象创建一个 Set。这是有效的,如果我使用一组自定义对象,则没有重复项:

我用 NSObject 扩展了我的类,因为 NSObject 已经实现了 Hashable 协议(以及 Equatable)我必须重写 hashValue,这不再起作用,如果我使用一组我的自定义对象有重复,我在这里做错了什么? :

谢谢你的帮助 !

0 投票
3 回答
967 浏览

ios - CLLocation 如何实现 Equatable 协议?

在回答关于 SO 的另一个问题时,我发现CLLocation该类符合Equatable协议。它使用什么方法来确定相等性?

纬度/经度的精确匹配?纬度/经度和高度的精确匹配?纬度、经度、高度和时间戳的精确匹配?速度和航向如何?CLLocation仅使用 lat/long 对创建的对象呢?该位置的各种其他值不是可选的,那么使用创建的位置的高度是init(latitude:longitude:)多少?

0 投票
1 回答
728 浏览

swift - Swift 上的通用 Equatable 类

我需要用于NOT类中的任何 Equatable项目的容器(例如,从情节提要开始的 UI 类)。我需要这样Generic

但它不起作用,Equatable需要Generic。不存在公共Equatable类的问题。


好的 - 转到通用!但如果我这样做

那么我将被迫在我的 nonGeneric-UI 类中指定类型。像这样

但是我们又遇到了不存在公共Equatable类的问题


All Equatable 容器的任何解决方案?

0 投票
1 回答
6918 浏览

arrays - 在 Swift 4 中使用 reduce 时出现“上下文闭包类型需要 2 个参数”错误

以下代码在 Swift 3 中编译

但产生错误

错误:上下文闭包类型 '(_, _) -> _' 需要 2 个参数,但在闭包主体中使用了 1

在 Swift 4 中。如何将此代码转换为在 Swift 4 中编译?