Re[3]: Are we stack-efficient yet?
От: johny5 Новая Зеландия
Дата: 18.11.22 11:34
Оценка:
SP>не понятно, что значит by-value. Вроде полная аналогия с С++ Также по-умолчанию производится копирование. И только если не реализован трейт Copy производится перемещение.

Резонно.

Мне кажется это из за смены привычек. В С++ ссылки и указатели свободно передаются и возвращаются из функций. Работа со стековой памятью и кучей единообразна, хошь — аллоцируй, не хошь не аллоцируй. Не нужен какой то там специальный Box<> тип чтобы держать объект в куче.
В Расте, из-за верифицируемой политики единого владельца ресурсом, компилятор часто даёт по рукам если начинать фривольно раздавать ссылки на объекты. В результате часто объекты, вместо того чтобы быть переданными по ссылке будут moved в функцию (чтобы не возиться с lifetime и mutable borrows).

Я не знаю, возможно тут моя неопытность меня кусает. Но я признаю что в Расте мне гораааздо проще писать если у тебя все объекты идут по значению. Просто тасуешь данные с места на место.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.