t27.aiEnglish

Структуры

Вы узнаете

Как объявить struct и packed struct и сколько их может быть в модуле.

pub struct Point { x: i32, y: i32 } объявляет тип с двумя полями. Поле — это имя и тип, поля разделяются запятыми. packed struct кладёт поля вплотную, без выравнивания, как устроен аппаратный регистр. В модуле может быть несколько структур; в спеке урока их две, и вердикт чист на всех 7 бэкендах.

Попробуйте

Добавьте в Point поле z: i32 и проверьте, какие бэкенды его по-прежнему компилируют.

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

t27 basics 17: a struct and its fields
t27 basics 17: a struct and its fields ↗

A t27 struct and a packed struct drawn as tables of fields, with how many backends compiled them. Lesson 17 of the t27 basics course.

specs/basics/17_structs.t27

// SPDX-License-Identifier: Apache-2.0
; t27 basics, lesson 17: Structs.
; A struct groups named fields, each with its own type.

module basics_17_structs;

pub struct Point {
    x: i32,
    y: i32,
}

pub const Flags = packed struct {
    ready: bool,
    error: bool,
};

pub const FIELDS_IN_POINT : u8 = 2;

test a_point_has_two_fields {
    assert FIELDS_IN_POINT == 2;
}

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

Все уроки