我需要使用带有大字符串的大型地图作为键。 go的默认map
是否有一种方法可以指定比较测试,以便将密钥视为地址?如果没有,是否有很好的库来实现这个?
请注意,我想要防止的是,只要进行地图查找,就会通过副本不断传递长字符串。
答案 0 :(得分:2)
对于字符串的特殊情况,Go默认执行您想要的操作:strings are currently represented by pointer/length pairs因此您在复制字符串时不会复制字符串数据。
通常,您无法指定自定义比较(或哈希)函数。其他类型和自定义结构are treated according to rules listed in the spec:指针按地址进行比较,例如,固定大小的数组按值进行比较,并且切片类型通常不具有可比性,因此包含它们的结构类型不能用作映射关键类型。