स्कैला 2.10, MurmurHash
किसी कारण से बहिष्कृत किया गया है, कह रहा है कि मुझे अब MurmurHash3
का उपयोग करना चाहिए। लेकिन एपीआई अलग है, और MurmurHash3
-> असफल के लिए कोई उपयोगी स्केलडॉक्स नहीं है।MurmurHash से MurmurHash3 पर माइग्रेट करें
उदाहरण के लिए, वर्तमान कोड:
trait Foo {
type Bar
def id: Int
def path: Bar
override def hashCode = {
import util.MurmurHash._
var h = startHash(2)
val c = startMagicA
val k = startMagicB
h = extendHash(h, id, c, k)
h = extendHash(h, path.##, nextMagicA(c), nextMagicB(k))
finalizeHash(h)
}
}
मैं क्या करना होगा यह कैसे MurmurHash3
बजाय का उपयोग कर? इसे तेजी से आवंटन की आवश्यकता है, अधिमानतः आवंटन के बिना, इसलिए मैं Product
, Seq
, Array[Byte]
या व्हाटहेवर MurmurHash3
का निर्माण नहीं करना चाहता हूं।
धन्यवाद, रेक्स। बीज पीढ़ी समझ में आता है। इसलिए 'उत्पाद' के लिए यह शायद' stringHash (productPrefix) 'होगा। –
@ 0__ - यह एक उचित मूल्य होगा। यह वास्तव में एक ही सामग्री के साथ क्या हो सकता है लेकिन एक अलग पहचान के लिए उबलता है; अगर ऐसी कोई चीज़ मौजूद नहीं है (या आप इसे/उनके साथ टकराने में कोई फर्क नहीं पड़ता) तो आप वहां कुछ भी या कुछ भी नहीं डाल सकते हैं। "केवल उसी नाम और सामग्रियों की चीजों से टकराएं (जो एक 'उत्पाद' भी हैं और एक ही स्पष्ट विधि का उपयोग करके बीज चुन चुके हैं)" एक बहुत ही उचित नीति है। –