我很好奇,如果hashCode()函數總是返回一個拉姆達或Scala中的東西相同的值?Scala(方法/函數).hashCode靜態值?
我的測試向我展示了一些靜態值,即使在構建時也不會改變。這是預期的行爲還是將來會改變?
如果這是一些靜態行爲,它會幫助我建立我的圖書館很多。
編輯:
讓我們這個源代碼:
object Main {
def main(args: Array[String]): Unit = {
val x = (s: String) => 1
val y = (s: String) => 2
println(x.hashCode())
println(y.hashCode())
}
}
它是在控制檯輸出對我來說總是1792393294
和226170135
。
我目前正在做的是實現一個解析器組合器庫,我用多種語言實現。我需要知道封裝類是什麼時候是相同的(例如,底層函數是相同的),所以我可以實現類似調用堆棧的東西,我需要在失敗時儘可能地解析,但是防止無盡的遞歸出現錯誤。
在此先感謝!
你的意思是2個相同的lambdas實例嗎?你能舉一個你想要的例子嗎? – 2014-12-02 15:38:17
@BenReich我用示例和具體用例更新了我的問題。 – bash0r 2014-12-02 16:11:07