猿问

golang中两个接口如何匹配

如果我有一个类型map[interface{}]interface{}并且我有另一个具有 map[string]interface{} 的地图,如何比较 interface{} 值。

如果我有一个 m := make(map[string]interface{})并且我执行,我将如何评估哈希值,m[m["key"]]即我正在为一个以字符串为键的映射传递一个 interface{} 值。

反之亦然,即: m1 := make(map[interface{}]interface{})我执行m1[m["key"]]


梵蒂冈之花
浏览 210回答 1
1回答

肥皂起泡泡

Go 接口是一个 2 字的值,因此可以进行比较。从比较运算符的语言规范部分:接口值具有可比性。如果两个接口值具有相同的动态类型和相同的动态值,或者两者都具有值 nil,则它们是相等的。当类型 X 的值可比较且 X 实现 T 时,非接口类型 X 的值 x 和接口类型 T 的值 t 是可比较的。如果 t 的动态类型与 X 相同且 t 的动态值等于 x,则它们相等.在 的情况下只有第一点是相关的map[interface{}]T,因为键总是被转换为interface{}用于比较的。
随时随地看视频慕课网APP

相关分类

Go
我要回答