The OpenNET Project / Index page

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



"Компания Apple объявила о скором переводе языка Swift в разр..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Компания Apple объявила о скором переводе языка Swift в разр..." +/
Сообщение от Аномсисemail (?), 09-Июн-15, 16:29 

> В зависимости от алгоритмики деление на нуль и рпочие переполнения могут быть проблемой логики или исходных данных.

Я видел много логики, где если делитель равен нулю, то и результирующее значение должно быть равно нулю.

Вот, например, пример нормирования:

int Сумма = 0;

foreach(Значение; МассивЗначений) {
   Сумма += Значение;
}

foreach(ref Значение; МассивЗначений) {
   Значение /= Сумма;
}

А если "Сумма" будет равна 0, то и "Значение" должно равнятся 0, но такого не будет, т.к. вылезет исключение и поэтому приходится писать условие:

Сумма = Сумма==0 ? 1 : Сумма;

Или:

Значение = Сумма==0 ? 0 : Значение / Сумма;

Если же в данном примере, заместо типа int использовать тип float, то после деления на 0 получится nan, а по логике работы алгоритма должно быть 0, поэтому данный оператор и тут выручит и избавит от сравнения, засоряющего код.

И таких ситуаций я встречал полно в программировании, именно поэтому данный оператор полезен, потому что лень каждый раз писать аналогичные условия и плюс код ещё загромождается. Я с аналогичным кодом сталкивался больше, чем вы можете себе представить и разработчики данного языка, видимо, не спроста придумали эту конструкцию, наверно их тоже достало писать эти условия.

И заметьте, что оператор "&/" -- это не оператор деления, а оператор деления и сравнения, поэтому, где логика другая, там можно пользоваться обычным делением.

Но думаю, что данный оператор нельзя назвать преимуществом языка Swift, т.к. аналогичная конструкция вроде свободна во всех самых популярных языках(из тех, которые я знаю), поэтому она мигрирует потом из данного языка и в остальные, если язык станет популярным, ну или если идея дойдёт до разработчиков остальных языков.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Компания Apple объявила о скором переводе языка Swift в разр..., opennews, 08-Июн-15, 22:43  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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