LINUX.ORG.RU

История изменений

Исправление byko3y, (текущая версия) :

Какой контейнер? Или я тебя не понимаю или ты постоянно «слегка» меняешь тему: сначала говорил о «бессмысленных усложнениях», потом про необходимость писать let mut (это ещё можно назвать «многословностью», но никак не усложнением), теперь вот распаковка контейнеров
Ну и когда я писал на С++, то const auto& встречалось ну просто очень часто. В этом случае в расте будет просто let

Очень тяжело обсуждать не опираясь на конкретные примеры. Естественно, «let mut» — это только малая доля модификаторов-контейнеров. В соседнем треде приводили пример wake.rs, где почему-то для виртуальной таблицы понадобилось писать 300 строк:

https://doc.rust-lang.org/stable/src/core/task/wake.rs.html

Может ты объяснишь, что каждая строчка здесь несет ценный смысл и удаление ее из библиотеки недопустимо? Да, здесь почти нет никаких «let», зато сотня описаний типов аргументов.

«Прекрасно» это будет, когда будешь копипастить функции для изменения типов.

Как это?

Два варианта: либо писать просто копипастой, либо писать сложно обобщениями. Оба печальны в итоге: либо получается упомянутая стенка однотипных объявлений и вызовов функций, либо трейт на трейте трейтом погоняет, и все это (как в wake.rs) только для того, чтобы дернуть одну функцию.

Исходная версия byko3y, :

Какой контейнер? Или я тебя не понимаю или ты постоянно «слегка» меняешь тему: сначала говорил о «бессмысленных усложнениях», потом про необходимость писать let mut (это ещё можно назвать «многословностью», но никак не усложнением), теперь вот распаковка контейнеров
Ну и когда я писал на С++, то const auto& встречалось ну просто очень часто. В этом случае в расте будет просто let

Очень тяжело обсуждать не опираясь на конкретные примеры. Естественно, «let mut» — это только малая доля модификаторов-контейнеров. В соседнем треде приводили пример wake.rs, где почему-то для виртуальной таблицы понадобилось писать 300 строк кода:

https://doc.rust-lang.org/stable/src/core/task/wake.rs.html

Может ты объяснишь, что каждая строчка здесь несет ценный смысл и удаление ее из библиотеки недопустимо? Да, здесь почти нет никаких «let», зато сотня описаний типов аргументов.

«Прекрасно» это будет, когда будешь копипастить функции для изменения типов.

Как это?

Два варианта: либо писать просто копипастой, либо писать сложно обобщениями. Оба печальны в итоге: либо получается упомянутая стенка однотипных объявлений и вызовов функций, либо трейт на трейте трейтом погоняет, и все это (как в wake.rs) только для того, чтобы дернуть одну функцию.