On Thursday, 27 August 2020 11:39:11 UTC+2, [email protected] wrote:
>
> To me, if `x == nil` and then `y != nil` after `y = x` is much more
> confusing.
>
This can happen only if x and y have different types.
And for different types this is pretty normal as you can have
x == 0.2 // true
y = int(x)
float64(y) != 0.2 // true too
With the only difference that you have explicit type conversions
where interface assignment is implicit.
And this is not even the strangest thing that can happen:
NaN floats are especially peculiar. You can have
x := y
x != y // true
x != x // also true
That is something everybody has to learn once. It is a
property of all float types. Different types behave differently.
And this is true not only for operators like +, - or / but also
for operators like =, == and !=.
For the rest of the argument: It _really_ isn't an actual
problem. In 10 years of Go this happened maybe three
time to me and was dead simple to identify.
V.
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/1ad000eb-05ef-473b-b8f2-379df14ca155o%40googlegroups.com.