За последние 24 часа нас посетили 16728 программистов и 1644 робота. Сейчас ищет 1031 программист ...

Оператор goto

Тема в разделе "Прочее", создана пользователем Donald, 13 окт 2015.

  1. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Вот. "обычное применение" vs. "введен для того чтобы". Не понял?
    Ок. Давай я процитирую бо́льший фрагмент для понимания контекста и возьму его из официального русского перевода:
    Ну? Здесь не написано "зачем введен goto" и даже не написано "goto лучше чем break". Здесь написано как его нельзя использовать и как он обычно используется. А я чо? А ты чо? )))

    Ммм, вот в чем профит!
    Обычно, когда ты что-то куда-то вставляешь, ты отвечаешь за последствия ))) Сдуру то не только break можно сломать.
     
  2. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Давай, я тебе на русский разжеванный переведу. Может какие-то проблемы есть у тебя с этим, хз.

    "обычное применение" - для чего он обычно применяется. "Обычное применение зубной щетки - чистить зубы".
    "использование чего-то(1) вместо чего-то(2)" - эта фраза говорит, что мы заменяем (2) и начинаем вместо него использовать (1).

    В комплексе это значит следующее: оператор goto чаще всего применяется для того, что бы заменить многоуровневый break.

    Дальше тут следует логическое мышление. Оператора goto не было. Его ввели. И написали "обычно он используется как замена многоуровневому break". Какой можно сделать вывод, дети? Дети отвечают: Оператор goto ввели, ибо многоуровневый break - полный швах.

    А теперь рассмотрим, что пишете вы.
    В русском языке "что-то (1) находится где-то, где более уместно что-то(2)" означает, что что-то (1) занимает не свое место. Что, по хорошему, надо бы нам что-то (1) выкинуть, и заменить на что-то (2).

    Вы утверждаете, что фраза "нужно выкинуть многоуровневый break и поставить goto", и ваша фраза "нужно выкинуть goto и поставить break" - несут одинаковый смысл. Именно это вы высказали, цитирую "конечно, обычно goto используется вместо break, о чем и трендим в предыдущих 2 страницах", я правильно понял? ;)

    Добавлено спустя 4 минуты 53 секунды:
    Я, конечно, понимаю, что эта ваша фраза - попытка съехать с темы путем тупейшего троллинга.
    Но на самом деле - вы правы, отвечаю. И одним из способов "не сломать сдуру", и уж тем более - не дать "сломать сдуру" всяким "супер-программистам пишущим программы с нелинейными алгоритмами" - является использование конструкций, которые сложнее сломать.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Моя претензия, детка, не к твоему мнению. А к подаче как в жолтой прессе: написал "доку читали?" и дальше несешь отсебятину, которая кагбе из авторитетного источника.
     
  4. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Ну если "доку читали" - для вас равноценно желтой прессе, то и правда не о чем говорить с вами ;)
    Прочитай раз 50, что ли, раз не понял. Никаких ссылок на документацию кроме причины ввода goto там нет. Что бы увидеть "которая кагбе из авторитетного источника" - надо быть или не русским, или не умным.
    Отсебятину несу, да, во второй половине поста. Могу себе позволить это сказать без всякого ИМХО. Ибо никаких сомнений именно в написанном там у меня нет. Если вас это напрягает - ваши проблемы. Можете попробовать поспорить. Именно по второй половине поста.
    Но вас вместо этого почему-то так подбомбило, что вы стали нести какую-то откровенную ахинею.
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    да
    а вот это ложь! я писал что "обычно goto используется там, где более уместен break". это близко к фразе из доки, но я нигде не говорил, что это цитата оттуда. а насчет нужно/ненужно пару раз написал, что НЕ считаю goto злом, просто не видел примера где бы он реально работал лучше других вариантов.
    ты же постоянно всё перевираешь. и не стыдно?
     
  6. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Еще раз, мне не трудно. Дока говорит, что break менее уместен, чем goto, в случае выхода из вложенных циклов.
    Вы правда видите близость? В лучшем случае - эти фразы вообще о разных вещах. В худшем - протеворечат. Хз что там было у вас в голове.

    Добавлено спустя 1 минуту 49 секунд:
    Тебе привели пример с отсылкой на документацию. ХЗ что там у тебя заклинило, что кипиш начал.
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Лингвист из тебя никакой. И грубиян к тому же. И врун. Фу быть тобой!
     
  8. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    нужно выкинуть многоуровневый break
    нужно выкинуть goto

    а все кто считает иначе, пусть заранее об этом предупреждают, дабы не взрывать нормальным людям мозг дикими конструкциями )
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    согласен
     
  10. Donald

    Donald Новичок

    С нами с:
    13 окт 2015
    Сообщения:
    31
    Симпатии:
    0
    Прочитай старт топика и не неси ахинею. Мне вообще плевать на гото и его важность, я просил помочь отрефакторить код, чтоб знать как обходиться красиво без него. Если для тебя спросить помощи на форуме - равносильно нести ахинею, то тебе могут не помочь языки с динамической типизацией ибо и там сопоставить несопоставимое нельзя.
     
  11. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Нет, ахинея - это про всякие "взлетевшие" LA, сохранение состояния объектов, 6-ю версию и т.п.
     
  12. Donald

    Donald Новичок

    С нами с:
    13 окт 2015
    Сообщения:
    31
    Симпатии:
    0
    Для большинства смысл топика перешёл в холивар именно по непониманию сабжа. Никто не разбирался в плохих сторонах goto и в том, что метка в файле может быть всего одна по договорённости и стоять строго в конце каждого файла перед каким-то логическим футером. Подобные договорённости спрош и рядом и не оотсеиваются компиляторами, более того вы их каждый раз используете! Например, писать название класса с большой буквы. Ничего плохого с точки зрения логики программы нет и она будет работать если написать некоторые классы с маленькой, но тогда код для чтения превратиться в кашу похлеще goto меток, разбросаных по файлу. Это только один пример договорённости. Можно убрать из файла отступы и код тк же как с метками превратится в ад. Так же пропадает только читабельность из-за нагромождения меток goto.. Делаем одну метку на весь файл почти в самм конце, и получаем exit, только с отображением футера, как пример.

    Все накинулись на топик и перевели его в холивар из-за того, что goto просто как красная тряпка для быка. (тупо неизвестный предмет, типа не разбирался, но осуждаю, так как мне так сказали). Блин, вы даже проглядели вопрос топика, что я хочу научиться в процедурной парадигме PHP обходить глубокие ветвления без goto!

    Добавлено спустя 5 минут 3 секунды:
    В любоми случае, это не касается темы топика.
    LA не уменьшается от дробления проекта на бОльшее число файлов. Не знаю, как можно опровергнуть, что диску сложнее обращаться к разным файлам, чем прочитать один.
    сохранение состояния объектов отличает ООП.
    6-ю версию, не трогал, но осуждаю. Так же как и большинство осуждает не разобравшись тему топика! По правде было бы интересно посмотреть востребоване ограничения на версию PHP d продакшне.. Думаю статистика использования и так будет на стороне 5.x версии, но это не показатель.
     
  13. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Например, тем, что в нормально настроенных серверах все будет в памяти (файловый кеш).
    Так же в большинстве случаев, даже если придется ходить по диску - это не будет узким местом разбитых на части скриптов, т.е. реально рассуждать о "производительности" тут можно лишь в некоторых специфичных случаях.
    А они и хранят.
    Код (Text):
    1.  
    2. $a = (object)["a" => 1];
    3. echo $a->a;
    Напечатает 1. Видишь, хранит состояние. Именно это имеется ввиду про "хранение состояния". А не тот смысл, что вы вложили.

    Если постараться, можно найти ретроградов с 5.3. Как правило это компании, для которых хостинг - не профильное занятие.
    Все остальные тянутся за новыми версиями, так что 5.6 найти не проблема.
     
  14. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    острить пытаешься как раз ты.
    я не сравнивал пых с фортраном. я лишь перечислил языки где есть ГОТО.
    применяя твою логику, все эти языки, получили ГОТО чтобы "обеспечивать легкое вхождение для не умеющих программировать".
    очевидно что это не так, и причина появления ГОТО в Пыхе - совсем другая.
     
  15. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Применяя мою логику? ))) У тебя не получилось, ты споришь сам с собой.
    Пыха — особенный язык, со своим особенным комьюнити. Для Пыхи важно иметь низкий порог на входе, а для других нет.
     
  16. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    У меня все получилось. Я показал что ты неправ. Каждый язык в чем-то особенный. и каждый хочет иметь низкий порог вхождения. да не всем это удается.
     
  17. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Ладно-ладно, как скажешь.