Freeman писал(а):
Если правильно понял, Юрий подразумевает синтаксическое обособление нерабочего кода одной командой, необязательно в IDE. Кто будет маскировать строковые константы -- IDE или программист? Если программист, то чем это отличается от обычных комментариев?
Не совсем понимаю, о чём вы. Можно маскировать автоматически в IDE, это делается довольно просто - достаточно парсить все строковые и символьные константы и заменять последовательности */ на *\/, семантика от этого не меняется. Может это делать и программист, особенно удачно совмещается с подсветкой синтаксиса, – после комментирования участка кода случайно оставшаяся часть будет подсвечена как код. В конце концов, не проблема
столкнуться с синтаксической ошибкой – это будет мгновенно обнаружено при ближайшей компиляции. Проблема – столкнуться с ситуацией, когда
синтаксических и грамматических ошибок не возникнет, и код начнёт компилироваться с другой семантикой. Такая ситуация здесь практически исключена, т.к. закрывающая кавычка превратится в открывающую и чтобы сохранить компилируемость, надо сильно извратиться с содержимым строки, последующими комментариями и кодом вокруг этого участка.
Bargest писал(а):
Но отказ elseif в купе с обязательным наличием операторных скобок может превратить цепочку условий в нечто ужасное:
Код:
if str1 = "123" {}
else
{
if str2 = "234" {}
else
{
if str3 = "345" {}
else
{
if str4 = "456" {}
else
{
doSomething;
}
}
}
}
И так может продолжаться долго.
Я эту проблему давно решил для себя даже в C/C++ следующим образом:
Код:
if (num1=123) {
...;
} else if (num2=234) {
...;
} else if (num3=345) {
...;
} else if (num4=456) {
...;
} else {
...;
}