我正在尝试在Go中创建一个由大整数键控的地图.Effective Go明确表示:
结构,数组和切片不能用作映射键,因为没有在这些类型上定义相等性.
这是有道理的.我当然可以将大整数转换为字符串并使用字符串作为键,但我在这里寻找更通用的解决方案.我可以将我的结构包装成实现相等功能的东西(接口吗?)并使用它来代替?
示例代码当然不起作用:
package main
import (
"big"
"fmt"
)
func main() {
one1 := big.NewInt(1)
one2 := big.NewInt(1)
hmap := make(map[*big.Int] int)
hmap[one1] = 2
_, exists := hmap[one2]
fmt.Printf("Exists=%v\n", exists)
}
Run Code Online (Sandbox Code Playgroud) 我工作的产品组目前正在使用gcc 3.4.6(我们知道它很古老)用于大型低级c代码库,并希望升级到更高版本.我们已经看到在我们测试它的所有硬件平台上测试不同版本的gcc 4.x的性能优势.然而,我们非常害怕c编译器错误(历史上有一个很好的理由),并且想知道是否有人知道我们应该升级到哪个版本.
人们是否将4.3.2用于大型代码库并认为它工作正常?