mrjbom
@mrjbom

Выражение без эффекта перемещает переменную?

Есть такой код
struct NoCopy;
let b_no_copy: NoCopy = NoCopy {};
let bb: NoCopy = b_no_copy;
bb;
let b_ref: &NoCopy = &bb;

В последней строке возникает ошибка:
borrow of moved value: `bb`
       bb;
 |     -- value moved here


Если bb; убрать, то всё работает, почему так? Никакого перемещения там не происходит, но компилятор думает иначе.
Это точно системный язык на котором можно писать серьёзные вещи? Или компилятор дурной? Или тут и правда происходит некое перемещение в параллельную вселенную?
  • Вопрос задан
  • 736 просмотров
Пригласить эксперта
Ответы на вопрос 1
@deliro
Если bb; убрать, то всё работает, почему так? Никакого перемещения там не происходит, но компилятор думает иначе.

Перемещение происходит. Семантически это выражение эквивалентно `{ bb }`

Это точно системный язык на котором можно писать серьёзные вещи?

Нет, язык херня. Беги писать на жс

Или тут и правда происходит некое перемещение в параллельную вселенную?

Хорошая привычка — агриться на вещи, которые ты не понимаешь. Далеко пойдёшь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы