Scala元组类型是否使用其所有元素来计算其哈希码?
发布时间:2020-12-16 18:21:20 所属栏目:安全 来源:网络整理
导读:或者 Scala是否使用独立于其元素的内容(如内存地址)来计算元组哈希码? 换句话说,给定两个Tuple2(a,b)和(c,d),a == c b == d暗示(a,b).hashCode ==(c,d).hashCode? 解决方法 does a == c b == d imply (a,b).hashCode == (c,d).hashCode ? 是的,它确实.这是
或者
Scala是否使用独立于其元素的内容(如内存地址)来计算元组哈希码?
换句话说,给定两个Tuple2(a,b)和(c,d),a == c&& b == d暗示(a,b).hashCode ==(c,d).hashCode? 解决方法
是的,它确实.这是==和hashCode之间的契约. (*)
是的,它确实. Scala Tuple2只是一个案例类: final case class Tuple2[@specialized(Int,Long,Double,Char,Boolean/*,AnyRef*/) +T1,@specialized(Int,AnyRef*/) +T2](_1: T1,_2: T2) extends Product2[T1,T2] { ... } 在Scala中,案例类的hashCode按以下方式计算: hashCode in case classes in Scala What code is generated for an equals/hashCode method of a case class? (*)从以下可以看出,对于案例类(包括元组),合同得以实现. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |