Методы могут быть вызваны на nil-получателях, что напоминает статические методы класса в других языках. Если метод корректно обрабатывает nil-получатель, он может выполняться без panic, давая разработчику гибкий механизм обработки состояний и предоставляя дополнительную семантику через поведение методов.
type MyType struct{}
func (a *MyType) Try() {
if a == nil {
println("nil receiver")
return
}
println("method called")
}
func main() {
var a *MyType
a.Try() // Выведет "nil receiver"
}