The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Вышел компилятор языка D 2.076"
Отправлено Ordu, 03-Сен-17 14:11 
> Почему они auto считают достижением?

Я не знаю, зачем это в D, потому что с D знаком на уровне "как-то раз пролистал википедию", но вообще в этом есть бонус: код становится полиморфизм-френдли. Допустим, есть у тебя какой-нибудь контейнер, для которого тип объявляется "по науке". Тебе нужен итератор, ты пишешь что-то типа: auto iter = v.iter();. Если ты потом меняешь тип контейнера (либо потому что он параметризованный, либо перебивая руками сорцы), тебе не надо переписывать объявление переменной iter. Если ты меняешь итератор: auto iter = v.reverse_iter(), или v.iter().filter(|x| x > 0), тебе не надо выяснять как в результате будет называться тип итератора. При этом любому, кто будет работать с этим кодом, совершенно не важно как называется этот тип, важно что он делает, а что он делает описано справа от знака равенства.

Плюс это по мелочи удобно и для примитивных типов. Если я делаю open, то какого типа я получаю результат? int? int32_t? int64_t? fd_t? Да мне плевать, если по-хорошему, я задумываюсь чтобы сделать хорошо компилятору и не спровоцировать ненужных и потенциально ошибочных преобразований типов -- ну, если я напишу что-то типа int64_t fd = open(...);, то всё будет работать, но потом этот fd будет приводится к int32_t при каждом использовании; компилятор наверное соптимизирует; но зачем проверять?

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру