我在golang的源代码中发现了这个函数,并想知道它是否真的是一个完美的哈希函数。这是测试的正确方法吗?package mainimport ( "fmt" "strconv" "unsafe")//go:linkname strhash runtime.strhashfunc strhash(p unsafe.Pointer, h uintptr) uintptrconst seed = 666func main() { m := make(map[uintptr]string) for i := 0; i < 1000000000; i++ { key := strconv.Itoa(i) hash := strhash(unsafe.Pointer(&key), seed) _, exist := m[hash] if exist { fmt.Println("collision") break } m[hash] = key } fmt.Println("finish")}
- 1 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消