hashable相关内容

使快速协议符合Hasable

我在绕圈,试图让Hashable使用符合相同protocol的多个struct。 我有一个协议SomeLocation声明如下: protocol SomeLocation { var name:String { get } var coordinates:Coordinate { get } } 然后我创建多个包含类似数据的对象: struct ShopLo ..
发布时间:2022-03-28 20:26:04 移动开发

使结构可哈希?

我正在尝试创建 [petInfo : UIImage]() 类型的字典,但我收到错误 Type 'petInfo' 不符合协议 'Hashable'.我的 petInfo 结构是这样的: struct petInfo {var petName: 字符串var dbName: 字符串} 所以我想以某种方式使它可散列,但它的任何组件都不是整数,这正是 var hashValue: Int 所要求的 ..
发布时间:2022-01-01 11:34:44 移动开发

Python:基于参数的单例

我正在关注此链接并尝试创建一个单例类.但是,考虑参数(在启动类时传递),以便在参数相同时返回相同的对象. 因此,我想将传递的参数作为键存储在 dict 中,而不是将类名/类引用存储为 dict 键.但是,也可能存在不可散列的参数(例如 dict、set 本身). 存储类参数和类对象映射的最佳方法是什么?这样我就可以返回一个与参数对应的对象. 还是谢谢. EDIT-1:多一点 ..
发布时间:2021-11-17 05:49:47 Python

Swift 3 中的 Any 、 Hashable 、 AnyHashable 有什么区别?

我通过大量教程摸索以了解上述 3 个术语之间的区别并找到新术语 type erased 容器,现在这让我感到困惑.这引发了很多问题. 为什么 Swift 引入了 AnyHashable ? 这三个术语之间的根本区别是什么? Any 和 AnyHashable 的区别? Hashable 和 AnyHashable 的区别? 何时使用 Hashable 以及何时使用 A ..
发布时间:2021-09-02 18:33:14 移动开发

Swift:“Hashable.hashValue"作为协议要求已被弃用;

我的 iOS 项目一直面临以下问题(这只是一个警告). 'Hashable.hashValue' 作为协议要求被弃用;通过实现 'hash(into:)' 来使类型 'ActiveType' 符合 'Hashable' Xcode 10.2 斯威夫特 5 源代码: 公共枚举 ActiveType {案例提及案例标签案例网址案例自定义(模式:字符串)var 模式:字符串 {切换 ..
发布时间:2021-09-01 20:40:30 移动开发

无序且允许重复的可散列数据结构

我有元组/列表列表(-1, 0, 1)(-1, 1, 0)(-1, 2, -1)(-1, -1, 2)(0, 1, -1) 我需要它们:(-1, 1, 0)(-1, 2, -1) 我希望 (-1, 0, 1) 和 (-1, 1, 0) 映射到同一事物.我想到了类似 set 的东西,但这会删除元组中可能存在的任何重复项. 在生成新元组时说 (-1,-1,2) 我想执行像 if ( ..
发布时间:2021-07-23 19:20:42 Python

Swift:将类的 ObjectID 用于可哈希协议会导致 set.contains 方法中的随机行为.代码有什么问题?

我在一个集合中存储了少量自定义类的实例.我需要检查某个元素是否包含在该集合中.匹配条件必须是对象的 ID,而不是其内容. 为了简单起见,假设一个类的唯一属性是一个整数 var,以及该类的两个不同实例,都保存数字 1. 直接比较这些实例应该返回 true,但是当集合中存储了对第一个实例的引用时,如果集合中包含对第二个实例的引用,则查询应该返回 false. 因此我使用对象的Obje ..
发布时间:2021-07-23 19:18:36 移动开发

Set 如何确保 Swift 中的平等性?

我正在阅读设置 当您需要有效地测试成员资格并且不关心集合中元素的顺序时,或者需要确保每个元素在集合中只出现一次时,请使用集合而不是数组. 基本上Set保证唯一性,它有一些方法并且依赖于Hashable 使用 contains(_:) 方法测试集合是否包含特定元素. 使用减法(_:)方法创建一个新的集合,其中的元素不在另一个集合或序列中 但是 2 个不同的对象可以具有相 ..
发布时间:2021-07-23 19:17:54 移动开发

将字典添加到带有联合的 `set()`

我刚刚遇到了一些我想我会问的有趣的事情. 将字典添加到 set 中,我曾假设该字典将作为完整字典添加,但事实并非如此.仅添加键: dicty = {“Key1":“Val1",“Key2":“Val2"}setunion = 设置()setunion.union(dicty)=>设置(['Key2','Key1']) 当您尝试使用 set.add() 添加它时,您会收到一个错误: se ..
发布时间:2021-07-23 19:16:26 Python

与Set完全相同的代码会得到不同的结果吗?Swift中的实际问题是什么?

我有一个小问题.我有两个数组,我试图在其中找到相同的内容.因此,我决定将其转换为Set,然后将这些漂亮的函数与"subtract"一起使用.但是我得到了非常不同的结果.有人可以告诉我为什么会这样吗?当我使用“减"时,而不是“减去"我没问题,但是这对我来说很奇怪,我真的不知道为什么会这样. var objectIDsWhichExist = [["kjugsJHL6JYoByOreUQ0wUef ..
发布时间:2021-05-16 19:50:48 移动开发

推荐的实现__eq__和__hash__的方法

Python文档提到如果您覆盖 __ eq __ 并且该对象是不可变的,您还应该重写 __ hash __ 以便该类正确地可散列。 在实践中,当我这样做时,我通常会得到类似 class这样的代码MyClass(object): def __init __(self,a,b): self.a = a self.b = b def __eq __(self,其他): 如果 ..
发布时间:2020-10-30 05:53:39 Python

将@ functools.lru_cache与字典参数一起使用

我有一个方法(其中包括一个字典)作为参数。该方法正在解析字符串,并且字典提供了一些子字符串的替换,因此它不必是可变的。 此函数经常调用,并且在冗余元素上所以我认为缓存它可以提高效率。 但是,正如您可能已经猜到的那样,由于 dict 是可变且不可散列的 @ functools.lru_cache 无法装饰我的函数。那么我该如何克服呢? 如果仅需要标准库类和方法,则奖励积分。理想情况 ..
发布时间:2020-10-21 22:22:58 Python

快速可哈希协议散列函数是否需要返回唯一值?

我正在研究一个iOS快速的Tetris教程*,并且它已经完成并且可以工作。 但是我对一个特定方面感到困惑-Hashable协议。 函数: class块:可哈希,可打印{ [...] var hashValue:Int {return self.column ^ self.row} 行转到0..9 ,以及第0..20列。这些函数的注释说:“我们返回行和列属性的异或 ..
发布时间:2020-10-05 18:46:11 移动开发

符合哈希协议?

我正在尝试创建一个字典,将键作为我创建的结构,并将值作为Ints数组.但是,我不断收到错误消息: 类型"DateStruct"不符合协议“哈希" 我很确定我已经实现了必要的方法,但是由于某种原因,它仍然无法正常工作. 这是我带有已实现协议的结构: struct DateStruct { var year: Int var month: Int var ..
发布时间:2020-07-31 08:15:09 移动开发