小编Olo*_*lof的帖子

复杂数据类型作为Go中映射中的键

我正在尝试在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)

go

10
推荐指数
1
解决办法
2462
查看次数

应该使用哪个4.x版本的gcc?

我工作的产品组目前正在使用gcc 3.4.6(我们知道它很古老)用于大型低级c代码库,并希望升级到更高版本.我们已经看到在我们测试它的所有硬件平台上测试不同版本的gcc 4.x的性能优势.然而,我们非常害怕c编译器错误(历史上有一个很好的理由),并且想知道是否有人知道我们应该升级到哪个版本.

人们是否将4.3.2用于大型代码库并认为它工作正常?

c gcc

5
推荐指数
1
解决办法
1558
查看次数

标签 统计

c ×1

gcc ×1

go ×1