gpt4 book ai didi

scala - Scala 元组类型是否使用其所有元素来计算其哈希码?

转载 作者:行者123 更新时间:2023-12-01 21:37:14 25 4
gpt4 key购买 nike

或者 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?

是的,确实如此。这是 == 之间的契约(Contract)和hashCode 。 (*)

Does Scala tuple type uses all of its elements to compute its hash code?

是的,确实如此。斯卡拉 Tuple2只是一个案例类:

final case class Tuple2[@specialized(Int, Long, Double, Char, Boolean/*, AnyRef*/) +T1, @specialized(Int, Long, Double, Char, Boolean/*, 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?

<小时/>

(*) 从下面可以看出,对于案例类(包括元组),契约(Contract)得到了履行。

关于scala - Scala 元组类型是否使用其所有元素来计算其哈希码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46306962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com