Rust (язык программирования): различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
Содержимое удалено Содержимое добавлено
Torgeek (обсуждение | вклад) →История: дополнение, источники добавлен 2020 год опроса stack Overflow |
Tetromino (обсуждение | вклад) →Объектная система: дополнение; отсутствие прямой поддержки наследования; struct и структура данных - разные понятия |
||
Строка 248:
== Объектная система ==
В Rust объектная система основана на [[Типаж (абстрактный тип)|типажах]] ({{lang-en2|traits}}) и [[Структура (язык Си)|структурах
Языковой поддержки [[Наследование (программирование)|наследования]], и следовательно, классического [[Объектно-ориентированное программирование|ООП]], в Rust нет. Вместо наследования, аналогия [[иерархия классов|иерархии классов]] реализуется введением дополнительных типажей, включением структуры-предка в структуру-потомка или введением перечислений для обобщения разных структур<ref>{{cite web|author=Михаил Панков|title=Есть ли ООП в Rust?|url=https://rustycrate.ru/%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5/2017/06/11/oop-in-rust.html|website=rustycrate.ru|date=2017-06-11|accessdate=2020-06-06}}</ref>.
Язык поддерживает [[Обобщённый алгебраический тип данных|обобщённые типы]] (generics). Помимо функций, обобщёнными в Rust могут быть комплексные типы данных, структуры и [[Тип-сумма|перечисления]]. [[Компилятор]] Rust компилирует обобщённые функции весьма эффективно, применяя к ним мономорфизацию (генерация отдельной копии каждой обобщённой функции непосредственно в каждой точке её вызова). Таким образом, копия может быть адаптирована под конкретные типы аргументов, а следовательно, и оптимизирована для этих типов. В этом отношении обобщённые функции Rust сравнимы по производительности с [[Шаблоны C++|шаблонами языка C++]].▼
▲Язык поддерживает [[Обобщённый алгебраический тип данных|обобщённые типы]] ({{lang-en2|generics}}). Помимо функций, обобщёнными в Rust могут быть комплексные типы данных, структуры и [[Тип-сумма|перечисления]]. [[Компилятор]] Rust компилирует обобщённые функции весьма эффективно, применяя к ним мономорфизацию (генерация отдельной копии каждой обобщённой функции непосредственно в каждой точке её вызова). Таким образом, копия может быть адаптирована под конкретные типы аргументов, а следовательно, и оптимизирована для этих типов. В этом отношении обобщённые функции Rust сравнимы по производительности с [[Шаблоны C++|шаблонами языка C++]].
== Параллельные вычисления ==
|