大佬教程收集整理的这篇文章主要介绍了如何使用自定义类类型作为Swift中Dictionary的键?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果这是在C#中,则工作代码应为:
字典< Pixel,int> colorDictionary = new Dictionary< Pixel,int> ();
在Swift中,我尝试过:
var colorDictionary = Dictionary<Pixel,Int>()
但是,我得到的错误:
我该怎么做才能解决这个问题?非常感谢!
Hashable
协议.
var hashValue:Int {get}
使用此属性可生成Dictionary可用于查找原因的int.您应该尝试使其生成的hashValue对于每个像素都是唯一的.
Swift书中有以下注释,因此您可以创建一个随机哈希(只要它是唯一的):
请注意,因为Hashable继承自Equatable
,您还必须实现:
func ==(_ lhs: Self,_ rhs: Self) -> Bool.
我不确定像素的内部结构是什么,但是当两者具有相同的“x”和“y”值时,你可能会认为两个像素相等.最后的逻辑取决于你.
根据需要修改:
struct Pixel : Hashable { // MARK: Hashable var hashValue: Int { get { // Do some operations to generate a unique hash. } } } //MARK: Equatable func ==(lh: Pixel,rh: Pixel) -> Bool { return lh.x == rh.x && rh.y == lh.y }
以上是大佬教程为你收集整理的如何使用自定义类类型作为Swift中Dictionary的键?全部内容,希望文章能够帮你解决如何使用自定义类类型作为Swift中Dictionary的键?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。