首页 >后端开发 >Golang >如何有效地使用结构体在 Go 映射中创建复合键?

如何有效地使用结构体在 Go 映射中创建复合键?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-10 04:12:03261浏览

How can I effectively use structs to create composite keys in Go maps?

在 Go 映射中使用复合键的结构

在 Go 中,哈希映射中的复合键允许组合多个值以形成唯一键地图。与数据库中的组合键不同,它们用于计算目的。

要将 pow(x, y) 的计算值存储在哈希表中,您可以使用结构体定义组合键:

type Key struct {
    X, Y int
}

这个结构体组合了 x 和 y 值来创建一个键。您可以在映射中使用此键,如下所示:

m := map[Key]int{}
m[Key{2, 2}] = 4
m[Key{2, 3}] = 8

fmt.Println("2^2 =", m[Key{2, 2}])
fmt.Println("2^3 =", m[Key{2, 3}])

输出:

2^2 = 4
2^3 = 8

结构体用作键,因为它们提供了一种将多个值表示为单个单元的简单方法。它们确保定义正确的比较运算符(== 和 !=),从而允许从映射中高效检索键。

不建议使用指针作为键类型,因为指针比较仅检查内存地址而不是实际值。数组也可以用作键类型,但结构提供了更大的灵活性。

以上是如何有效地使用结构体在 Go 映射中创建复合键?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn