Re[5]: Статья Н.Вирта: взгляд из Зазеркалья
От: Anton Batenev Россия https://github.com/abbat
Дата: 01.02.06 19:56
Оценка: 1 (1) -1
Здравствуйте, VladD2, Вы писали:

VD>Проблемы от "=" есть только в С и С++ авторы которых были не соль дальновидны, чтобы предвидеть тот факт, что люди будут опечатываться в операторе if и писать вместо "==" "=".


И компиляторы тут же выдают при этом warning, который обычно приравнивается к error. Так что не вижу здесь проблемы, равно как и осуждаю практику в виде:

if (2 == x) ;

VD>1. Введением более строкой типизации. Так сделано в C#. В нем никакое выражение отличное от булева не может приводиться к bool, а if всгда проверяет только булевы выражения. При этом проблемы все же возможны если оператор присвоения использовать для булевых переменных, но это не встречается на практике, так как сравнение с булевыми константами редко бывает осмысленно.


А вот это, честно говоря, достаточно сильно напрягает. Почему бы не ввести соглашения о приведении базовых типов к bool? Меня напрягает писать очевидные вещи типа

Object o = null;
if (o <> null) ;

Гораздо быстрее и без потери понятности (при наличии соглашений) можно писать

if (o) ;
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.