Показать сообщение отдельно
Старый 22.12.2004, 11:04   #17  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Цитата:
Изначально опубликовано George Nordic
Хм...
Мне кажется, Х++ - скорее скриптоподобный , чем с-подобный язык...
Кстати, а в чём отличие скриптовых языков от интерпретируемых?
Насколько я знаю за скриптовые языки считаются интерпретируемые языки в которых отсутствует типизация переменных - т.е. типы переменных деляться на две ветки - VARIANT и агрегатные. С этой точки зрения X++ типичный интерпретируемый язык в котором проверка синтаксиса программы почему то названа громким словом "компиляция".
Под си-подобными языкоми я имею ввиду языки унаследовавшие синтаксис C/C++, а в этом X++ ничуть не хуже своих соплеменников типа явы или перла.

Цитата:
В основе которого положена теория рефакторинга,
Рефакторинг в основу языка не заложен, он заложен в код который на языке программируют. Причём X++ это или C++ значения не имеет.

Цитата:
в которой как раз рекомендуется использовать switch/case для читабельности кода.
Вот я (и не только я) как раз и не считаю что в сиподобных языках switch чем то лучше if / else в плане читабельности кода - пример приведен постом выше. Главное отступы и пробелы в нужных местах. Если кому то ломы писать на пару символов больше в условиях else if ( a == SomeConst ) когда можно просто написать case SomeConst: пусть вспомнит что за это есть плата - в каждом case приходится писать на одну инструкцию больше (имею ввиду break).
Поэтому еще раз повторяю - в сиподобных языках у конструкции switch нет никаких преимуществ перед конструкцией if / else, ни по читабельности ни даже по кол-ву символов которые нужно писать в коде для реализации того или иного решения.
Посмотрите еще раз на извращение с switch ( true ) - - прикольное конечно же решение не спорю, но вводить ф-ю (пусть даже глобальную) ради того чтобы написать
PHP код:
switch ( true )
{
...
case 
in(a510):
...
break 
вместо
PHP код:
else if ( <= && <= 10 
{ ... } 
- ОНО ТОГО НЕ СТОИТ
Минус switch-а состоит в ограниченности применения - хотя с помощью switch ( true ) можно добится любого поведения, но ценность switch-а для читаемости кода и состоит именно в том что он сообщает программисту что далее идут проверки на строгое равенство выражения в switch() с константами.

P.S.
И еще одно - согласно принципам рефакторинга (немногое что я успел вычитать в ссылке, которую давал mazzy) конструкции switch( ... ) в коде надо устранять заменяя полиморфизмом в ООП.