Добавление методов в struct
Добавляйте своему типу поведение.
«Добавление методов в struct» — бесплатный урок Mojo Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Mojo Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Mojo Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Data Plus Behavior
So far your struct only holds data. A method is a function that lives inside the struct and gives your type behavior. 🚀
Methods Live Inside
You write a method by defining a function indented inside the struct, right alongside its fields and __init__.
struct Point:
var x: Int
var y: Int
fn show(self):
print(self.x, self.y)self Comes First
A method's first parameter is self, the instance it was called on. Through self the method reads and uses the struct's own fields.
fn show(self):
print(self.x)Calling a Method
You call a method with dot syntax on an instance. Mojo passes that instance in as self automatically for you.
var p = Point(3, 4)
p.show()Methods Can Return Values
Like any function, a method can return a result. Declare the return type after an arrow and hand back a value.
fn sum(self) -> Int:
return self.x + self.yMethods Take Arguments Too
After self, a method can accept more arguments, just like a normal function, to work with extra data the caller provides.
fn scaled(self, factor: Int) -> Int:
return self.x * factorRead-Only by Default
A plain self parameter is borrowed, so the method can read fields but not change them. This keeps your data safe.
Mutating with mut self
To let a method change the instance, mark the parameter mut self. Now assignments to self.x actually update the value.
fn move_right(mut self, step: Int):
self.x += stepMethods Build on Each Other
One method can call another through self, so you compose small behaviors into larger ones without repeating code.
fn report(self):
print(self.sum())Encapsulation in Action
Keeping fields and the methods that use them in one struct is encapsulation. The type owns both its data and how that data behaves.
A Struct That Does Work
Here a Point both stores coordinates and reports their sum. Your type is now active, not just a passive data container.
struct Point:
var x: Int
var y: Int
fn sum(self) -> Int:
return self.x + self.yQuick Check
Let us check what you know about methods.
Recap
You gave your struct methods that read and even mutate its fields. Next you will compare Mojo structs with Python classes. 🧩
Часто задаваемые вопросы
Урок «Добавление методов в struct» бесплатный?
Да — полный текст урока «Добавление методов в struct» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Mojo Academy, подпишись на CoddyKit PRO. Курс Mojo Academy содержит 4 уроков всего.
Чему я научусь в уроке «Добавление методов в struct»?
Добавляйте своему типу поведение. Ты практикуешь Mojo Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Mojo Academy?
Предыдущий опыт не требуется. Mojo Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Добавление методов в struct»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Mojo Academy?
Да. Каждый урок Mojo Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Определение struct
- Поля и метод __init__
- Добавление методов в struct
- Struct и классы Python