There have been multiple accounts created with the sole purpose of posting advertisement posts or replies containing unsolicited advertising.

Accounts which solely post advertisements, or persistently post them may be terminated.

nickwitha_k , (edited )

Kinda. nil is a weird value in Go, not quite the same as null or None in JS and Python, respectively. A nil value may or may not be typed and it may or may not be comparable to similar or different types. There is logical consistency to where these scenarios can be hit but it is pretty convoluted and much safer, with fewer footguns to check for nil values before comparison.

I’m other words, in Go (nil == nil) || (nil != nil), depending on the underlaying types. One can always check if a variable has a nil value but may not be able to compare variables if one or more have a nil value. Therefore, it is best to first check for nil values to protect against errors that failure to execute comparisons might cause (anything from incorrect outcome to panic).

ETA: Here’s some examples


<span style="color:#323232;">// this is always possible for a variable that may have a nil value. 
</span><span style="color:#323232;">a != nil || a == nil
</span><span style="color:#323232;">
</span><span style="color:#323232;">a = nil
</span><span style="color:#323232;">b = nil
</span><span style="color:#323232;">// This may or may not be valid, depending on the underlying types.
</span><span style="color:#323232;">a != b || a == b
</span><span style="color:#323232;">
</span><span style="color:#323232;">// Better practice for safety is to check for nil first
</span><span style="color:#323232;">if a != nil && b != nil {
</span><span style="color:#323232;">    if a == b {
</span><span style="color:#323232;">        fmt.Println("equal")
</span><span style="color:#323232;">    } else {
</span><span style="color:#323232;">        fmt.Println("not equal")
</span><span style="color:#323232;">    }
</span><span style="color:#323232;">} else {
</span><span style="color:#323232;">    fmt.Println("a and/or b is nil and may not be comparable")
</span><span style="color:#323232;">}
</span>
  • All
  • Subscribed
  • Moderated
  • Favorites
  • [email protected]
  • random
  • lifeLocal
  • goranko
  • All magazines