【发布时间】:2014-06-05 12:22:16
【问题描述】:
在 Python 中,id(x) 给出了对象 x 的唯一 id。 Scala 中的等价物是什么?
>>> id(True)
1166096
>>> id(False)
1166108
>>> x = id([1,2,3])
>>> id(x)
2058589988
>>> y = id([1,2,3])
>>> id(y)
2058589976
我可以使用 x.hashCode 作为 id,但是当内容相同时它会返回相同的值。我想知道以下代码中的a eq b == false 是什么。 a eq b 中比较了哪些值?
scala> val a = ArrayBuffer(1,2,3)
a: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)
scala> val b = ArrayBuffer(1,2,3)
b: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)
scala> a.hashCode
res44: Int = 387518613
scala> b.hashCode
res45: Int = 387518613
scala> a eq b
res39: Boolean = false
【问题讨论】:
-
除了
is或weakref为您提供的功能之外,您是否还需要id的某些特定功能?