0Pricing
Zig Academy · Урок

Безопасная распаковка с помощью if и orelse

Обрабатывайте null без неожиданных последствий.

«Безопасная распаковка с помощью if и orelse» — бесплатный урок Zig Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Zig Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Zig Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

You Must Unwrap First

An optional is not the value inside it. Before you can use the contents you have to unwrap it and deal with the null case.

Capture with if

An if on an optional can bind the inner value with a pipe capture. The body runs only when the optional is not null.

if (maybe) |value| {
    use(value);
}

Handle the null Branch

Add an else to react when the optional is null. Now both outcomes are covered with no chance of a missing case.

if (maybe) |v| {
    use(v);
} else {
    handleEmpty();
}

The Capture Is Unwrapped

Inside the if body the captured name is the plain inner type, not an optional. The question mark is already gone for you.

if (age) |a| {
    // a is i32, not ?i32
}

orelse Supplies a Default

The orelse operator unwraps an optional, but if it is null it gives back the value on its right instead.

const a = age orelse 0;

orelse Is an Expression

Because orelse returns a value, you can use it inline anywhere, like passing a defaulted number straight into a function call.

print(level orelse 1);

orelse Can Run Code

The right side of orelse may be a block. Use it to compute a fallback or even return early from the current function.

const v = lookup() orelse return;

Force Unwrap with .?

Writing .? asserts the optional is not null and hands back the value. If it is null in a safe build, your program panics.

const a = age.?;

Use .? Only When Certain

Reach for .? only when null is truly impossible. Otherwise prefer if or orelse so an empty value never crashes you.

Choose by Intent

Use if to branch on presence, orelse for a quick default, and .? only when you can prove the value is there.

Safety Is the Default

Each tool forces you to acknowledge null. That is why Zig optionals rarely turn into the surprise crashes seen in other languages.

Quick Check

You want a default of 0 when an optional integer is null. Which fits best?

Recap

You can unwrap optionals with if captures, supply defaults via orelse, or assert with .?. Each one makes you face null on purpose. ✅

Часто задаваемые вопросы

Урок «Безопасная распаковка с помощью if и orelse» бесплатный?

Да — полный текст урока «Безопасная распаковка с помощью if и orelse» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Zig Academy, подпишись на CoddyKit PRO. Курс Zig Academy содержит 4 уроков всего.

Чему я научусь в уроке «Безопасная распаковка с помощью if и orelse»?

Обрабатывайте null без неожиданных последствий. Ты практикуешь Zig Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Zig Academy?

Предыдущий опыт не требуется. Zig Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Безопасная распаковка с помощью if и orelse»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Zig Academy?

Да. Каждый урок Zig Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Объявление необязательных типов
  2. Безопасная распаковка с помощью if и orelse
  3. Необязательные указатели и ?*T
  4. null и undefined
← Назад к Zig Academy