0Pricing
Zig Academy · Урок

Методы перечислений и целые числа-основы

Добавляйте поведение и управляйте представлением.

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

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

Enums Can Have Behavior

An enum is a real type, so it can hold methods. You declare functions inside the enum body, right next to the value names.

A Method on an Enum

Write a function inside the enum and take self as the first parameter. It works just like a method on a struct.

const Color = enum { red, green, fn isRed(self: Color) bool { return self == .red; } };

Calling Enum Methods

You call a method with dot syntax on a value. The value becomes self, so the method knows which variant it was called on.

const ok = c.isRed();

Every Enum Has Integer Backing

Under the hood, each enum value maps to an integer. Zig picks a small backing integer type that fits all your values.

Default Numbering Starts at Zero

By default the first value is 0 and each later value counts up by one. So red is 0, green is 1, and so on by order.

const Color = enum { red, green, blue }; // 0, 1, 2

Choosing the Backing Type

You can name the backing integer in parentheses, like enum(u8). This pins the exact width and matters for layout and interop.

const Code = enum(u8) { a, b, c };

Setting Explicit Values

Assign a specific number to a value with =. This is handy when the integers must match a protocol or hardware register.

const Status = enum(u8) { ok = 0, busy = 1, err = 255 };

Enum to Integer

Turn an enum value into its number with @intFromEnum. This gives you the underlying integer to send or store.

const n = @intFromEnum(Status.err); // 255

Integer to Enum

Go the other way with @enumFromInt to convert a number back into an enum value of the type you expect.

const s: Status = @enumFromInt(1);

Convert with Care

@enumFromInt assumes the number is a valid variant. In safe builds a bad value is caught; otherwise it is your job to validate.

Methods Plus Tags Together

Combine both ideas: pick a backing type for layout, set values for a protocol, and add methods so the enum stays self-contained.

Quick Check

You have a Status enum value and need its underlying number. Which builtin?

Recap

You gave enums methods with self, chose a backing integer like enum(u8), set explicit values, and converted both ways with @intFromEnum and @enumFromInt. 🔢

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

Урок «Методы перечислений и целые числа-основы» бесплатный?

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

Чему я научусь в уроке «Методы перечислений и целые числа-основы»?

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

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

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

Сколько времени занимает урок «Методы перечислений и целые числа-основы»?

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

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

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

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

  1. Перечисления для фиксированного набора значений
  2. Объединения, содержащие один из нескольких типов
  3. Помеченные объединения и switch
  4. Методы перечислений и целые числа-основы
← Назад к Zig Academy