Hello, World! 🎄
goto добавили так поздно?
Зачем вообще goto нужно
Tony
Зачем вообще goto нужно
Чтобы без проблем выйти не только из самого глубокого вложенного, но вообще из всей цепочки вложенных циклов
Tony
Это без проблем можно сделать без него
Например? Помогите человеку выше.
Hello, World! 🎄
goto только в ассемблере полезен, в виде jmp процедура.
Tony
goto только в ассемблере полезен, в виде jmp процедура.
Если он полезен там, он может быть полезен и на уровень повыше
Tony
Уже триста лет этому спору
Tony
Аргументы уже озвучены
Hello, World! 🎄
Например? Помогите человеку выше.
В начале функции: local end_func = false И с какого места выйти написать true для переменной. В начале циклов написать: if end_func then break end Всё
Igor
В начале функции: local end_func = false И с какого места выйти написать true для переменной. В начале циклов написать: if end_func then break end Всё
А теперь вопрос: Зачем городить вот это вот всё, если можно поставить один лейбл и вызов goto?
Igor
Которые, кстати, делают всё тоже самое, что и на ассемблере
Hello, World! 🎄
Там это необходимость
Igor
А тут чем не необходимость?
Igor
И ассемблер - это не "другое"
Igor
Не поверишь, любая программа в конечном итоге превращается в машинный байткод))
Hello, World! 🎄
А тут чем не необходимость?
Я просто написал что можно без goto, это ваше решение как сделать через if или через goto
Igor
Тот же Lua в goto использует longjump
Igor
Не плюс-минус, а все
Hello, World! 🎄
Не плюс-минус, а все
Да, но допустим ты пишешь на lua, запускаешь код и этот код интерпретируется luavm, сам код в машинный не превращается
Hello, World! 🎄
Igor
Нууууу, и ты связи не видишь в моих словах?
Aqendo
В начале функции: local end_func = false И с какого места выйти написать true для переменной. В начале циклов написать: if end_func then break end Всё
while &&&&& do make_10min_thing() make_1hour_thing() end И тут надо выйти после make_10min_thing(), естественно ты не захочешь ждать ещё час для полного завершения цикла.
Hello, World! 🎄
Нууууу, и ты связи не видишь в моих словах?
Давай напиши код на луа и скомпилируй его в машинный. Чтоб без luavm выполнялся.
Igor
Чем это утверждение не верно?
Igor
Объясни
Hello, World! 🎄
Hello, World! 🎄
Превратите скомпилируйте js код в машинный
Igor
Превратите скомпилируйте js код в машинный
Погуляй, пожалуйста, по коду LuaVM и не насилуй мне мозг https://www.lua.org/source/5.1/lapi.c.html#lua_call
Igor
И JS тоже в итоге превращается в машинный нативный байткод
Hello, World! 🎄
Любой. Код. В итоге. Превращается. В. Машинный.
Сам код просто интерпретируется vm, он транслируется через vm
Hello, World! 🎄
Ладно, всё хватит спорить
Igor
Дак ты опять начал спор с пустого места, лишь бы поспорить
Igor
И не понимаешь, что не прав
Igor
Как и писалось раньше
Hello, World! 🎄
Igor
Ну тогда отлично
Hello, World! 🎄
Hello, World! 🎄
Можно, но не нужно
Просто как альтернатива goto
Igor
Просто как альтернатива goto
Довольно тяжёлая альтернатива
Hello, World! 🎄
Довольно тяжёлая альтернатива
Если часто нужно прыгать по коду, то да. Если один раз, то почему бы так не сделать.
Snusmumriken
Я просто написал что можно без goto, это ваше решение как сделать через if или через goto
"Можно" без goto, но иногда лучше, проще, быстрее и читабельнее с goto :)
fgntfg
Есть религиозная неприязнь к goto.
Snusmumriken
Дейкстра когда-то сказал "goto для говнюков" и пошло-поехало, теперь каждый мамкин программист возомнил себя великим знатоком "как всё надо делать" и gotoненавистником ))0
Lucky
Надо понимать такую штуку, как контекст.
Lucky
Дейкстра писал это во времена более зёлёной травы. 1966 год. Тогда просто не было нынешних языков программирования, всех этих сотен вузов, учебников, компьютеров и этого вот всего.
Snusmumriken
Дейкстра написал это про дебилов которые кроме goto ничем не умеют пользоваться и запутывают код в кашу на пустом месте, и они его так задолбали что он решил что ну в задницу сам goto, вместо дебилов.
Lucky
Ну, не дебилов, а просто малоопытных. Тогда фраги опыта набивались меееедленно, компьютеры весили тоонну и считали чуть по чуть. IDE тупо не было.
Snusmumriken
Если хотите, то пожалуйста - используйте goto. Но можно и без него обойтись.
> Но можно и без него обойтись. А ещё можно из буханки хлеба и маминых спиц сделать автобус. Но зачем?
Lucky
Если ты боишься Goto, значит ты не программист, а мамкин погромист.
Snusmumriken
Подтолкни и поедет )
Hello, World! 🎄
Если ты боишься Goto, значит ты не программист, а мамкин погромист.
Я просто его не использую, т.к не встречал надобность в использовании
Lucky
Подтолкни и поедет )
И ж-ж-ж-ж делай.
Snusmumriken
Ну вот и фигню не пори.
Hello, World! 🎄
Я даже и не знал что в lua есть goto
Lucky
Так научный коммунизм в догматы веры превратили.
Snusmumriken
И самый главный кек: "Мы не будем добавлять в луа continue, потому что у вас уже есть goto, поэтому завалитесь по данным вопросам" ))
Snusmumriken
Кстати, continue ты тоже не используешь, да?
Snusmumriken
Уже есть goto. Проблемсы?
Snusmumriken
Та-да-дамм.
Snusmumriken
Ну и докучи
Hello, World! 🎄
Странное решение, continue в циклах не будет лишнем
Из-за них через if приходится делать: continue = false while true do if continue ~= true then -- code if ... then continue == true end -code else continue = false end end
Snusmumriken
Нет, это глупость. Просто goto.
Snusmumriken
Из-за них через if приходится делать: continue = false while true do if continue ~= true then -- code if ... then continue == true end -code else continue = false end end
Вот это вот как раз заменяется на внешнюю функцию с ретурнами вместо скипов в чистой 5.1, или на гото в жыте и старше.