t27.aiEnglish

Перечисления

Вы узнаете

Два способа объявить enum и как switch читает значение.

pub enum Color { Red, Green, Blue } называет три случая. Форма Zig pub const Mode = enum(u8) { Idle, Run } ещё и задаёт тип, в котором хранится случай, здесь u8. switch по значению перечисляет, что даёт каждый случай, и закрывает остальное через else. Обе формы в спеке урока чисто компилируются на всех 7 бэкендах.

Попробуйте

Добавьте в Color четвёртый цвет и обновите CASES_IN_COLOR, чтобы тест прошёл.

Открыть интерактивный урок →

t27 basics 18: two ways to write an enum
t27 basics 18: two ways to write an enum ↗

The two enum forms the t27 compiler accepts, side by side with their cases. Lesson 18 of the t27 basics course.

specs/basics/18_enums.t27

// SPDX-License-Identifier: Apache-2.0
; t27 basics, lesson 18: Enums.
; An enum names a fixed set of cases, and switch picks one of them.

module basics_18_enums;

pub enum Color {
    Red,
    Green,
    Blue,
}

pub const Mode = enum(u8) {
    Idle,
    Run,
};

pub const CASES_IN_COLOR : u8 = 3;

test color_has_three_cases {
    assert CASES_IN_COLOR == 3;
}

Открыть спеку урока в плеере ↗

Все уроки