Нулевые указатели
Часть раздела Основы путешествия по GO на Coddy — урок 65 из 109.
nil-указатель — это указатель, который ни на что не указывает. Это нулевое значение для типов указателей.
Объявите указатель nil:
var ptr *int
fmt.Println(ptr)
fmt.Println(ptr == nil)Вывод показывает, что указатель равен nil:
<nil>
trueПопытка разыменования нулевого указателя (nil pointer) приводит к панике:
var ptr *int
// Это приведет к аварийному завершению вашей программы
// fmt.Println(*ptr)Всегда проверяйте, не является ли указатель nil, перед разыменованием:
if ptr != nil {
fmt.Println(*ptr)
}Задание
НовичокВ этом испытании вы будете работать с указателями nil в Go. Указатель nil — это указатель, который не указывает ни на какой адрес памяти.
Ваша задача — проверить, является ли указатель nil, и вывести соответствующее сообщение.
В коде уже есть переменная-указатель, которой присвоено значение nil. Вам нужно добавить код, чтобы проверить, является ли указатель nil, и вывести соответствующее сообщение.
Шпаргалка
Нулевой указатель (nil pointer) — это указатель, который ни на что не указывает. Это нулевое значение для типов указателей.
Объявление нулевого указателя:
var ptr *int
fmt.Println(ptr) // <nil>
fmt.Println(ptr == nil) // trueВсегда проверяйте, не является ли указатель nil, перед разыменованием, чтобы избежать паники (panic):
if ptr != nil {
fmt.Println(*ptr)
}Попробуйте сами
package main
import "fmt"
func main() {
// Это nil-указатель на целое число
var ptr *int
// TODO: Проверить, является ли ptr nil
// Если он равен nil, вывести "The pointer is nil"
// Если он не равен nil, вывести "The pointer is not nil"
fmt.Println("Program completed")
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравнения — Часть 1Операторы сравнения — Часть 2Логический оператор ANDЛогический оператор ORЛогический оператор NOTОсновы приоритета операторовИтоги: выполнение сравнений7Управляющие конструкции: Циклы
Что такое цикл `for`Цикл `for` — основыЦикл `for` — только условиеКлючевое слово `break`Ключевое слово `continue`Вложенные циклыИтоги — повторение действий2Переменные и базовые типы данных
Что такое переменнаяВывод типов с помощью `:=`Целые числа (int)Числа с плавающей точкойЛогический тип (Booleans)СтрокиНулевые значения (Zero Values)КонстантыПравила именованияИтоги: переменные и типы5Основы ввода-вывода
Форматированный выводСпецификаторы форматаВывод типовБазовый ввод данных пользователемИтоги: ввод и вывод8Функции
Понимание функцийОбъявление функцииВызов функцийПараметры функцииВозврат одного значенияВозврат нескольких значенийИменованные возвращаемые значенияОсновы области видимости функцийИтоги — создание переиспользуемого кода3Базовые операторы
Арифметические операторыОператор деленияОператор остатка от деленияОператор присваиванияКомбинированные операторы присваиванияИнкремент и декрементПовторение — Вычисления6Управление потоком: Условные конструкции
Оператор `if`Ключевое слово `else`Ключевое слово `else if`Затенение переменных в `if`Инициализация переменныхОператор `switch`Switch с выражениямиSwitch без выраженийКлючевое слово `fallthrough`Итоги — Принятие решений