Я пытаюсь создать карту в 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)
}