Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Goto 
:(
    Опции темы
Domestic Cat
Дата 23.12.2004, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 4
Всего: 172



Цитата
Хороший код пишется с исключениями 



Исключения хороши для того, для чего они предназначены: ловить исключительные sитуации.
Но в любом языке (и в сиппипи) брошнный иксепшн означает (неэффективную) размотку sтекa;
а потому ими пользоваться нужnо в меру. goto был бы быстрее, хотя я считаю без негo в языках высокого уговня легкo можнo обойтись.


--------------------

PM   Вверх
Domestic Cat
Дата 23.12.2004, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 4
Всего: 172





--------------------

PM   Вверх
Sardar
Дата 23.12.2004, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 2
Всего: 317



Цитата(dm9 @ 23.12.2004, 16:03)
- Выход из цикла большой вложенности.

Для этого не нужны goto, а break/continue с меткой.

Цитата(dm9 @ 23.12.2004, 16:03)
- Переход к выполнению набора действий по условиям, разбросанным по функции.

Не читабельный код, говорю по опыту раскапывания старого QVB(диалект VB) кода. Сколько себя помню goto не использовал smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
dm9
Дата 24.12.2004, 02:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: нет
Всего: 137



Sardar, для небольших ф-ций вполне читабельный.

Цитата(Sardar @ 23.12.2004, 21:51)
break/continue с меткой.

Это понятно, но в БОЛЬШОЙ вложенности тебе придётся делать кучу проверок для этих меток.

PM MAIL ICQ   Вверх
Domestic Cat
Дата 24.12.2004, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 4
Всего: 172



Цитата(dm9 @ 23.12.2004, 17:51)
Sardar, для небольших ф-ций вполне читабельный.


Для небольших методов goto и не нужен smile


--------------------

PM   Вверх
chipset
Дата 24.12.2004, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 4
Всего: 165



Domestic Cat
А читабельность кода?
На мой взгляд, удобнее читать код с исключениями чем
заниматься сексом с goto'ами...


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
dm9
Дата 24.12.2004, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: нет
Всего: 137



Цитата(Domestic @ 24.12.2004, 06:20)
Для небольших методов goto и не нужен


"Небольшой" понятие относительное. Я имею в виду нормальную функцию длиной в 2-3 экрана.

Потом, что значит "нечитабельный"? Насколько я знаю, goto сейчас применяется только для тех целей, которые я указал (99%).Стало быть, если нет цикла, то... В общем, структура кода достаточна очевидна. Однако, здесь дело каждого, как и что использовать. Мне лично немного непонятен лозунг "программирование без goto!!!". Почему без него? И с ним можно делать красивый код, только злоупотреблять не надо, как и везде.
Что, скажете, из цикла тройной-четверной вложенности вы выйдете красивее и понятнее при помощи доп. перепенных и break-ов? Да никогда smile
PM MAIL ICQ   Вверх
Girder
Дата 24.12.2004, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: нет
Всего: 155



Цитата(dm9 @ 24.12.2004, 14:26)
только злоупотреблять не надо
Согласенен. Как говорится: Любое лекарство в больших количествах - вред!

PS: А без лекарства - можно "ласты склеить" smile

Это сообщение отредактировал(а) Girder - 24.12.2004, 16:01


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Domestic Cat
Дата 24.12.2004, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 4
Всего: 172



Цитата
А читабельность кода?


ну это само собой smile
а вообще я не помню чтобы я пользовался иксепшнами (как и goto) для переходов куда либо.

Цитата
Потом, что значит "нечитабельный"?


не всякий код с goto будет нечитабельным, но goto стимулирует написание такогo кода. при правильном пользовании goto можеt быть удобен, но будет ли приятно чи тать код поперемеченный лейбелами вдоль и поперек? все что может goto можно сделать другими средствами; возможно в некоторых (0.001%) ситуация такой код будет неуклюжим по сравнению с goto, но зато в остальных - будет понятнее.


--------------------

PM   Вверх
dm9
Дата 24.12.2004, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: нет
Всего: 137



Цитата(Domestic @ 24.12.2004, 17:27)
поперемеченный лейбелами вдоль и поперек?


Заметь, об этом никто не говорил smile)

Цитата(Domestic @ 24.12.2004, 17:27)
при правильном пользовании goto можеt быть удобен


Вот! И я о чём! smile
PM MAIL ICQ   Вверх
Domestic Cat
Дата 24.12.2004, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 4
Всего: 172



Цитата
Вот! И я о чём!


все равно - в Java его нет и я нe разу о нем нe вспомнил smile


--------------------

PM   Вверх
Sardar
Дата 24.12.2004, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 2
Всего: 317



Цитата(dm9 @ 24.12.2004, 01:51)
Это понятно, но в БОЛЬШОЙ вложенности тебе придётся делать кучу проверок для этих меток.

Не понял про проверки. Гото это универсальный оператор перехода куда угодно(возможно ограничение: только внутри функции). break/continue с меткой имеет однозначное значение: окончить/продолжить заданный цикл. По любому компилятор сгенерит гото в конец или начало цикла, вместо того что бы ты сделал это сам. Я за goto, но что бы компилятор выдавал warning'и и обкладывал трёхступенчатым не отключаемым матом всех, кто захочет его использовать smile

Цитата(Domestic @ 24.12.2004, 16:45)
се равно - в Java его нет и я нe разу о нем нe вспомнил

Я тоже smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
chipset
Дата 25.12.2004, 03:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 4
Всего: 165



Цитата(Domestic @ 24.12.2004, 06:27)
, но будет ли приятно чи тать код поперемеченный лейбелами вдоль и поперек?

Зато с исключениями гораздо логичнее заметь ;)


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Domestic Cat
Дата 25.12.2004, 03:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 4
Всего: 172



Вот stubborn smile
Без них еще логичнее smile


--------------------

PM   Вверх
dm9
Дата 25.12.2004, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: нет
Всего: 137



Цитата(Sardar @ 24.12.2004, 18:12)
Не понял про проверки. Гото это универсальный оператор перехода куда угодно(возможно ограничение: только внутри функции). break/continue с меткой имеет однозначное значение: окончить/продолжить заданный цикл. По любому компилятор сгенерит гото в конец или начало цикла, вместо того что бы ты сделал это сам. Я за goto, но что бы компилятор выдавал warning'и и обкладывал трёхступенчатым не отключаемым матом всех, кто захочет его использовать


Что-то я тебя не понял. Что такое goto я знаю smile
Я думал, ты хочешь выйти из цикла по break, но это выход из внутреннего цикла. Перед этим мы ставим флаг, и точно так же по break выходим из второго цикла. По этому же флагу - из третьего.
А что ты имел в виду под "break/continue с меткой"? Может, мы про разные языки? smile Я знаю break/continue в Паскале smile Но при чём тут метка (label, тот самый label, на который происходит goto?)
PM MAIL ICQ   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0598 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.