Гото

05.04.2008 20:19
В PHP появится аналог оператора goto. Пиздец котенку.

Причем давно уже пиздец.
Share
#

Ну, ты это, допустим, по юности и глупости повторил за кем-то, тебе можно. А вот взрослые программисты, болеющие языковым пуризмом, меня попросту бесят.

Ах, да, PHP еще и не энфорсит one entry one exit, на костёр!

Автор ответил:
Я действительно за всё время не сталкивался с ситуацией, когда без goto не обойтись.
Да ну, в этом случае — полезный оператор, вполне резонно его появление, и особенно в похапэ.
Пример в псевдоязыке:
ХУ1: ДЛЯКАЖДОГО Х В А1..А10
ДЕЛАТЬ КАКУ
УЙ1: ДЛЯКАЖДОГО У В Б1..Б10
ДЕЛАТЬ БЯКУ ИЛИ ПОЙТИ НА ХУ1
ДЛЯКОНЕЦ
ЕСЛИ НЕТ БЯКИ ТО ПОЙТИ НА УЙ1
ДЛЯКОНЕЦ

Другое дело, что дай идиоты бомбу — он себе ноги оторвёт.

Автор ответил:
ЛОЛВУТ?!
> ЛОЛВУТ?!
Ну у тебя же форматирование херится в комменте, с форматированеим было бы понятней.
Короче, вложенные циклы, перекрёстный выход из циклов по условию.
Или просто выход из самого внутреннего цикла наверх, или оптимизация выполнения (всё равно jmp в ассемблере не избежать, так если знаешь что делаешь — почему не).

Автор ответил:
Ага, только php — это не ассемблер.
> Я действительно за всё время не сталкивался с ситуацией, когда без goto не обойтись.

А я действительно за всё время не сталкивался с ситуацией, когда без цикла не обойтись.

Не вижу связи с. :)

> ХУ1: ДЛЯКАЖДОГО Х В А1..А10

Это можно сделать без джампов :p

fillest
гоуту — это видимо самый живучий из глупых холиваров, ппц
ke ke
вы всё ещё используете php?
> Ага, только php — это не ассемблер.
Один дурак сказал, а второй повторил, ахахаха!!!1

Простите.

Во-первых, при чем здесь ассемблер, без разницы, в каком языке (за исключением самого ассемблера)?

Во-вторых, когда интерпретатор делает джамп, это еще страшнее, чем когда он (процессор) сам делает джамп. Я бы тебя отправил читать про конвеер в частности и память в целом (http://www.google.com/search?hl=en&q=what+every+programmer+should+know+about+memory&btnG=Google+Search), но ты же хуй пойдешь.

> Во-первых, при чем здесь ассемблер, без разницы, в каком языке (за исключением самого ассемблера)?

Бля, чего ты мутишь? Когда интерпретатор делает джамп, то генерируется собственно машинный код, соответствующий ассемблеровскому jmp. Потому что процессору категорически похую, что у него там сверху — похапэ, память или конвеер с Зоргом. Именно об этом я и сказал.

Ну а то, что интерпретатор или компилятор генерят десяток других артефактов вместе с этим джампом — как бы само собой разумеется.

Demon
Зорг, ты сам-то как, здоров ли? Какой пуризм? Достанется тебе в наследство код какого-нибудь китайца с обильным использование goto — вот я на тебя тогда посмотрю.
Demon
> Когда интерпретатор делает джамп, то генерируется собственно машинный код, соответствующий ассемблеровскому jmp.

OMG! Пиши еще, я за чипсами пока схожу.

> OMG! Пиши еще, я за чипсами пока схожу.
Что писать? Что все горазды приебаться к совершенно второстепенному комментарию в скобках, игнорируя то, что этот комментарий собственно комментировал?

Я сказал, что гоуту спасает от глубоких вложений и при экстренной оптимизации, на что один сказал, что можно выйти и без стука, другого вообще китайцы больше волнуют.

В то время как ваш сраный сцэплюсплюс вещает из мсдн-а:
Within nested statements, the break statement terminates only the do, for, switch, or while statement that immediately encloses it. You can use a return or goto statement to transfer control from within more deeply nested structures.

Про китайцев — ни слова, бля.

Demon
> Что писать?
Да вот это и пиши.

> Я сказал, что гоуту спасает от глубоких вложений и при экстренной оптимизации
Это бред. Если я увижу в проекте слово goto — этот кусок будет немедленно переписан, а на автора наклеен ярлык со словом «идиот».

smirnfil
Единственно применение goto — это выход из пачки вложенных циклов, впринципе это действительно читается легче чем создание флаговой переменной и передача управления через нее. Но это настолько редкая ситуация(плюс она решается в некоторых языках конструкцией break с метками), а минусы бездумного использования goto известны всем настолько хорошо, что лучше не иметь этот оператор в языке.
Дмитрий Смирнов 2.0 RC
Ололо, в комментариях программисты!
Demon
> Единственно применение goto
Да ты че? Выход из пачки вложенных циклов осуществляется так: код выносится в отдельный метод, пишется слово return.

> Ололо, в комментариях программисты!
Только тебя ждали, теперь полный комплект.

Agon
100 миллионов китайцев не могут ошибаться!
Чтобы комментировать, надо войти или сначала зарегистрироваться.
Регистрация сквозная с Nudnik.ru (достаточно быть зарегистрированным в одном месте).
А если у вас есть OpenID, это еще проще: