在 Go 中创建唯一映射键的最有效方法

在 go 中创建唯一映射键的最有效方法

在Go语言中,创建唯一映射键的最有效方法一直是开发者们关注的问题。在面对需要保证键的唯一性的场景时,我们需要寻找一种高效且可靠的方法。php小编百草将在本文中分享一种最有效的方法,帮助您在Go语言中创建唯一映射键,让您的代码更加优化和高效。无论是处理大规模数据还是实现高并发的应用,这些方法都能帮助您提高性能和效率。让我们一起来了解吧!

问题内容

我在图书馆的某个地方有一个 map[any]SomeType 。我希望库用户能够为该地图创建键,以便保证它们在单个应用程序执行中不会发生冲突,并且我希望这些键能够高效地进行地图查找。

首先想到的是使用某个唯一的空对象的内存地址。但到目前为止我尝试的一切都失败了:

package main import "fmt" var key1 = &struct{}{} var key2 = &struct{}{} var key3 = struct{}{} var key4 = struct{}{} var key5 = new(struct{}) var key6 = new(struct{}) func main() { fmt.Println("key1 == key2", key1 == key2) fmt.Println("key3 == key4", &key3 == &key4) fmt.Println("key5 == key6", key5 == key6) test(key1, key2, "func12") test(&key3, &key4, "func34") test(key5, key6, "func56") } func test(a, b any, msg string) { fmt.Println(msg, a == b) } 登录后复制