Объявление необязательных типов
Добавляйте ? для разрешения отсутствующего значения.
«Объявление необязательных типов» — бесплатный урок Zig Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Zig Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Zig Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Sometimes There Is Nothing
Real programs hit cases where a value is simply absent: a lookup misses, a field is empty. Zig models this absence safely and on purpose.
The Optional Type
An optional type can hold either a real value of some type, or the special value null meaning nothing is there.
Add a Leading Question Mark
You make any type optional by writing ? in front of it. So ?i32 is an integer that might also be null.
var age: ?i32 = null;A Value Fits Right In
An optional happily holds a normal value too. You assign 42 to an ?i32 exactly as you would assign to a plain i32.
var age: ?i32 = 42;null Is the Empty State
The keyword null is the literal that means there is no value. Only optional types are allowed to hold it.
const missing: ?u8 = null;Non-Optionals Reject null
A plain i32 can never be null. The compiler stops you, so absence stays visible in the type rather than hiding as a bad value.
var n: i32 = null; // error: expected i32Wrap Any Type You Like
Optionals are not just for numbers. You can mark a bool, a struct, a slice, or any type as optional by adding the question mark.
var found: ?bool = null;Inference Still Works
Assign an optional value and Zig infers the optional type for you, so you do not always have to spell it out by hand.
const score: ?u32 = 10;Why Not Use a Sentinel
In C people fake absence with values like -1 or a null pointer. Zig gives you a real optional so absence cannot be confused with data.
Absence Is Part of the Type
Because ? lives in the type itself, anyone reading your code instantly sees that a value might be missing and must be handled.
Defaulting to null
It is common to start an optional at null and fill it in later once you actually have the value to store.
var result: ?[]const u8 = null;Quick Check
How do you declare a u32 that might be missing?
Recap
You met optionals: write ? before a type to allow a real value or null. Absence now lives in the type, plain and visible. ❓
Часто задаваемые вопросы
Урок «Объявление необязательных типов» бесплатный?
Да — полный текст урока «Объявление необязательных типов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Zig Academy, подпишись на CoddyKit PRO. Курс Zig Academy содержит 4 уроков всего.
Чему я научусь в уроке «Объявление необязательных типов»?
Добавляйте ? для разрешения отсутствующего значения. Ты практикуешь Zig Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Zig Academy?
Предыдущий опыт не требуется. Zig Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Объявление необязательных типов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Zig Academy?
Да. Каждый урок Zig Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Объявление необязательных типов
- Безопасная распаковка с помощью if и orelse
- Необязательные указатели и ?*T
- null и undefined