Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmPtNl 271 of 350 menu
◀ ▶

Нулевой указатель в Go

Указатель можно объявить, но пока не записывать в него адрес. Тогда он остаётся в нулевом состоянии. Для указателей это значение nil: адреса нет, идти некуда.

Объявим указатель на число и сравним его с nil:

package main import "fmt" func main() { var ptr *int fmt.Println(ptr == nil) // выведет true }

После записи адреса переменной сравнение с nil даёт ложь:

package main import "fmt" func main() { num := 3 ptr := &num fmt.Println(ptr == nil) // выведет false }

Чтение или запись через * при nil программу останавливает. Такой фрагмент нельзя запускать как рабочий пример:

var ptr *int fmt.Println(*ptr)

Перед доступом к значению указатель нужно направить на существующую переменную через адрес или присвоить другой уже готовый указатель.

Дан код:

var link *int

Выведите, равен ли link nil.

Создайте num со значением 2, запишите адрес в ptr и выведите, равен ли ptr nil.

Скажите, можно ли сразу вывести значение по объявленному без адреса указателю на число.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить