0Pricing
Mojo Academy · Урок

Оператор передачи

Перемещайте значения с помощью символа ^.

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

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

Move, Don't Copy

Passing to an owned parameter usually makes a copy. But if you are done with the original, copying is wasteful. You can move it instead. 🚚

Meet the Transfer Operator

Mojo's transfer operator is the caret ^ sigil. You place it after a value to hand its ownership over instead of duplicating it.

Using It in a Call

Add ^ when calling a function with an owned parameter. The value transfers in, and no copy is made.

var msg = String("hi")
consume(msg^)

The Original Is Gone

After a transfer, the source variable is no longer valid. Mojo ends its lifetime, so you cannot accidentally use the moved value.

The Compiler Enforces It

Try to read a variable after moving it and the compiler rejects your code. This check stops use-after-move bugs before they run.

Why Moving Is Faster

A move just transfers ownership of the existing data. There is no deep copy, which matters a lot for big strings, lists, or buffers.

Copy or Move, Your Choice

Without ^ Mojo copies into an owned parameter; with ^ it moves. You decide based on whether you still need the original.

Transfer on Assignment

The caret also works between variables. Writing one var from another with ^ moves the value rather than copying it across.

var a = String("data")
var b = a^  # a is now invalid

Pairs With owned

The transfer operator is the natural partner of owned parameters. Together they express giving a value away cleanly and cheaply.

Safety Plus Speed

Moves give you C-like efficiency while the compiler guarantees you never touch a value after handing it off. That is safe and fast.

The Full Ownership Picture

borrowed, inout, owned, and the ^ transfer together let you control exactly how data flows through your program, with no surprises.

Quick Check

Let us check what the ^ operator does to the source.

Recap

The ^ transfer operator moves a value instead of copying it, ending the source's life. Paired with owned, it makes giving data away fast and safe. 🎯

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

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

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

Чему я научусь в уроке «Оператор передачи»?

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

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

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

Сколько времени занимает урок «Оператор передачи»?

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

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

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

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

  1. Заимствование аргументов только для чтения
  2. Изменение на месте с inout
  3. Получение владения с owned
  4. Оператор передачи
← Назад к Mojo Academy