Можно ли управлять размером массива с помощью параметра типа общего?
Далее следует только пример и недопустимый код Rust.
struct Vec { a: [T; Count] }
Что-то вроде этого возможно в шаблонах C ++, но я не видел его в Rust.
- Почему Rust не поддерживает повышение уровня объекта?
- Почему заем все еще держится в блоке else, если пусть?
- Как увидеть расширенный макрокод, вызывающий ошибку компиляции?
- Каков правильный способ вернуть Итератор (или любой другой признак)?
- Не удается выйти из заемного контента
- Пакет ржавчины с библиотекой и двоичным?
- Есть ли способ создать псевдоним типа для нескольких признаков?
- Что означает «несоответствующие типы: ожидаемые» () `» при использовании выражения if?
- Почему связывание жизней имеет значение только с изменяемыми ссылками?
- Возrotation замыкания из функции
- Почему я не могу сохранить значение и ссылку на это значение в одной и той же структуре?
- Не удается выйти из заемного контента при развертывании
- Почему мой пользователь не вводит корректное соответствие stdin?
Если вы посмотрите на дизайн Rust, вы заметите, что сначала он занялся решением самых сложных проблем (без памяти, без данных), но в остальном есть много областей, где он «неполный» (по сравнению с тем, что может быть достигнута).
В частности, общие структуры и функции сегодня несколько ограничены:
- отсутствие типов более высокого качества (HKT)
- отсутствие параметров не-типа => массивы являются специальными, а реализация признака для массива – известная проблема , при этом работа заключается в ее реализации для нескольких разных измерений
- отсутствие вариационных параметров => кортежи имеют специальную обертку, а реализация признака для всех кортежей аналогично сложна
На данный момент они не реализованы, а не потому, что они не желательны, а просто потому, что времени не хватает. Идея Rust 1.0 заключалась в том, чтобы не выпускать конечный продукт, который не эволюционировал бы, а стабильная база для начала; некоторые или, возможно, все придут.
Что касается дорожной карты? Ну, нет, я знаю, хотя пост-1.0 уверен, я приглашаю вас ухать на землю.
Ожидая, что Rust получит первоclassную поддержку для этого, есть ящики, которые обеспечивают определенные уровни этой функциональности, такие как:
- typenum
- родовой-массив