Re[6]: Антипаттерн, противоположный Primitive Obsession
От: Sinclair Россия https://github.com/evilguest/
Дата: 19.03.23 05:04
Оценка: +1
Здравствуйте, T4r4sB, Вы писали:
TB>Ну ок, у тебя есть position, который [0..8) и offset который [-7..7]. Если ты применишь оператор (position, offset)->position к паре (5,5), то у тебя будет паника и прога упадёт.
Ну почему же упадёт? Надо просто ловить соответствующее исключение. Типичный пример checked arithmetics.
Опять же, в приличных языках есть возможности отдельно описать поведение операторов с включенными проверками и без них, и дать пользователю выбор.
Тогда
var a = (position)5 + (offset)5 - (offset)3;

даст a == (position)8, а
checked
{
  var a = (position)5 + (offset)5 - (offset)3;
}

— выбросит исключение.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.