nil-получатель метода в Go
Раз уж мы заговорили о пустых значениях — вы же в курсе, что метод можно вызвать даже на пустом указателе?
type english struct {
name string
}
// e может быть nil!
func (e *english) greet() {
if e == nil {
fmt.Println("I'm nil")
return
}
fmt.Println("Hello", e.name)
}
Прям вот так взять и вызвать:
var e *english
e.greet()
// I'm nil
И если убрать проверку на nil
из метода — будет паника на обращении к e.name
🤷♀️
★ Подписывайтесь на новые заметки.