问题标签 [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.
arrays - How to compare Equatable in Swift
I have multiple sets of two arrays like that. I am getting them from a 3rd party.
I know about types of objects in these array (in compile time). As example that first element will be a String
and second is an Int
.
I currently compare each set of arrays like that (please notice that arrays aren't homogeneous).
The biggest problem that each set have different types in it. As result, I have let say 10 sets of arrays with 5 elements in each. I had to do 10*5 explicit conversion to specific type and comparation.
I want to be able to write a common method which can compare two arrays like that (without a need to specify all the types)
I started to go down the road. However, I can't figure out what should I cast the objects too. I tried Equatable
. However, swift doesn't like direct usage of it. So, something like that doesn't work
Each object in this array will be Equatable. However, I am not sure how to use it in this case.
swift - Swift 2.2 中“通用”与协议“平等”的冗余一致性
编译时 Equatable 出现错误。我想在列表中添加 find 或 contains 方法来检查值。 我的代码如下
}
发生错误,是因为我使用的是 NSCoding 和 NSobject 吗?
swift - Swift 2.2,包含方法不起作用
包含方法无法正常工作,即使它与 Object 匹配,它也会给我错误的结果?
我的代码如下
检入 ViewController
swift - Swift Struct 不符合 Equatable 协议?
如何使结构符合“Equatable”协议?
我正在使用 Xcode 7.3.1
当我使用“MyStruct”时,Xcode 显示错误:
MyStruct 不符合协议“Equatable”
你有让 MyStruct 符合协议的想法吗?
nsimage - 测试 NSImage 是否相等
我在 NSPanel 中有多个配置相同的 NSImageView 对象,所有对象都启用了拖放模式。我想交叉检查包含的图像以标记重复项。但是当我将一个小 gif 或 jpeg 放到两个控件上时,明显的测试总是失败:
我是否误解了平等对 NSImage 意味着什么?还有其他方法吗?
swift - Swift:具有字典属性的可散列结构
我在 Swift 中有一个如下所示的结构:
我现在需要使用 MapKey 作为 Swift 字典中的键,这需要 MapKey 符合 Hashable 协议。
对于像这样的结构,Hashable 的正确实现是什么?
我一直在做一些研究,但未能确定散列字典的正确方法是什么,因为我需要能够为values属性本身生成散列值。任何帮助深表感谢。
ios - 来自 equatable 协议的 func == 不适用于自定义对象,swift
我的目标是显示历史登录的用户列表(例如 username )(如果有)。为了做到这一点,我正在做
在 UserManager,我正在save
做retrieve
一个User
. 在保存之前,我正在检查历史登录列表是否包含 a User
,否则我不会添加它。
第一次尝试,我做
现在它保存了第一次登录。第二次,我也这样做
UserManager 仍然将第二次登录添加到nsuserdefault
. 这意味着该功能contains
失败并导致
不能正常工作。
有谁知道为什么或对此有任何想法。
ios - CIImage 应该是平等的吗?
因此,Apple 的文档说CIImage
符合Equatable
. 我认为这意味着以下单元测试将通过。然而,事实并非如此。我对为什么感兴趣。
图像存在,guard
语句都通过,但断言失败,它们不相等。
出于兴趣,我尝试创建UIImage
两次并比较它们。那也失败了。
arrays - Swift indexOf 不一致的行为
看来我遇到了与 SwiftindexOf
功能不一致的行为。
indexOf
Swift中有两个函数:
1. 第一个Equatable
作为参数:array.indexOf(obj)
2. 第二个将匹配的闭包作为参数:array.indexOf{$0 == obj}
我有一个定义了运算符的NSObject
子类==
,即它符合Equatable
,因此,我假设两个函数的工作方式完全相同(在示例中使用闭包)。
但是,该1st
方法的行为不一致,特别是nil
在使用对象调用时返回,该对象的实例不存在于数组中。
为了说明问题,我提供了带有注释的示例代码:
这个问题只能用NSObject
子类重现。当我更改Obj: NSObject
为Obj: Equatable
方法indexOf()
完全按预期工作时,即返回2
.
问题是这是否可以被认为是一个错误?
我的假设是array.indexOf(object)
调用isEqual
方法NSObject
而不是我的重载==
运算符。
我的解决方案:
我使用array.indexOf{$0 == object}