我遇到了一个使用 NaN 作为映射键的 golang 测验,它运行时没有任何错误。如果 map 的键应该是可比较的,那么 NaN 是一个可比较的类型,或者这是一个允许 NaN 作为键的编译器错误。
这是测验来源,go playground 链接和下面的代码。
package main
var x = 0.0
func main() {
var a = x / x // a = NaN
var m = map[float64]int{a: 1}
m[a] = 2
for k := range m {
delete(m, k)
}
println(len(m)) // prints 2
}
慕工程0101907
长风秋雁
慕田峪7331174
随时随地看视频慕课网APP
相关分类