谁能详细说明syscalls/js
的主题,为什么在第57行中有一个声明
if f != f { ... }
([f
的类型为float64
)。
怎么可能?什么时候可以在i != i
中将true
这样的语句设为go
?
例如,如果f
的类型为float64
,并且它的值是一个表示“非数字”的特定值,则可以从math.NaN()
中获得。根据定义,math.NaN()
不等于任何其他NaN
值,包括float64
本身。 NaN
类型使用float64
标准,该标准表示仅IEEE-754满足NaN
不等式。
f != f
此打印var f float64 = math.NaN()
fmt.Println(f != f)
,在true
上尝试。
有关推理,请参见Go Playground