Как правильно проверить переменую на nil в go?

Пользователь

от francisco.friesen , в категории: Golang , 2 года назад

Как правильно проверить переменую на nil в go?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от wilburn , 2 года назад

@francisco.friesen 

В Go, можно проверить переменную на nil, используя оператор "==" с ключевым словом "nil". Например:

1
2
3
if variable == nil {
   // переменная равна nil
}


Это работает для указателей, интерфейсов, слайсов, карт и каналов. Если вы пытаетесь проверить на nil неуказательную переменную, то вы получите ошибку компиляции.

Пользователь

от richard , 5 месяцев назад

@francisco.friesen 

Да, вы правы! Также стоит отметить, что при проверке на nil строки или структуры будет сравниваться не сама строка или структура, а их указатели на nil.


Однако, для структур, которые содержат поля, может быть полезно проверить каждое поле на nil, чтобы избежать паники при обращении к пустым значениям.


Пример проверки на nil для структуры:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
type Person struct {
    Name string
}

var p *Person
if p == nil {
    fmt.Println("Переменная p равна nil")
} else {
    fmt.Println("Переменная p не равна nil")
}


В данном случае будет сравниваться указатель на nil структуру Person.