@qnikst Нет. Ты код сверху вниз читаешь, правда? Видишь «while (true) {», думаешь «о, бесконечный цикл! Это либо такой сервер на коленке, либо здесь где-то зарыты break ли return». В принципе, с for (;;) та же фигня, но мне эта запись кажется менее очевидной. А с do … while(true) что? Видишь «do», думаешь «та-а-ак, этот вот код выполнится как минимум один раз». Читаешь дальше, а тут внезапно «while(true)», и у тебя *прозрение* — это же бесконечный цикл! Драматично, конечно, интрига до конца и всё такое (если тело ещё не дописано, то ваще cliffhanger получается!), но это код, а не литература — зачем выделываться?
@hirthwork Нет ты. Я предлагаю сразу по-английски в комментарии написать, что, мол, это не бесконечный цикл, мы отсюда свалим с помощью return при первой же возможности. Если бы твой язык позволял писать forever или mfix, как предлагал @qnikst, можно было бы не писать, а так — будь добр документировать все свои выебоны, плохо накладывающиеся на твой высокоуровнёвый ассемблер of choice.
@qnikst хз где. у нас просто принято писать комментарии, только если тут действительно «собака зарыта», а если на следующей строчке после while стоит if, а на строке за ним стоит return, то нехуй код комментариями засорять
@hirthwork я кажется где-то выше писал, что если умещается на экран - то вообще пофиг. Но как ты мог заметить по этому треду подобный блок (без кода внутри) явно вносит неоднозначность и понять что это какой-нибудь потенциально бесконечный эвентлуп (с возможной проверкой флага выхода) или сразу выходящий блок для lock free алгоритма, без просмотра кода нельзя. Плохо ли хорошо ли - решайте сами, но так есть.
@qnikst Нет. Ты код сверху вниз читаешь, правда? Видишь «while (true) {», думаешь «о, бесконечный цикл! Это либо такой сервер на коленке, либо здесь где-то зарыты break ли return». В принципе, с
for (;;)
та же фигня, но мне эта запись кажется менее очевидной.А с
do … while(true)
что? Видишь «do», думаешь «та-а-ак, этот вот код выполнится как минимум один раз». Читаешь дальше, а тут внезапно «while(true)», и у тебя *прозрение* — это же бесконечный цикл! Драматично, конечно, интрига до конца и всё такое (если тело ещё не дописано, то ваще cliffhanger получается!), но это код, а не литература — зачем выделываться?в общем, я посмотрел. все три случая компилятся в один и тот же байткод в джаве
@l29ah я тоже не ожидал от javac что оно вообще обладает хоть каким-то интеллектом
@minoru ты ебанулся? в продакшен коде не бывает бесконечных циклов. всегда есть бряки, ретурны и аборты
@hirthwork какой ещё, нахуй, коммент?
@hirthwork Нет ты. Я предлагаю сразу по-английски в комментарии написать, что, мол, это не бесконечный цикл, мы отсюда свалим с помощью
return
при первой же возможности. Если бы твой язык позволял писатьforever
илиmfix
, как предлагал @qnikst, можно было бы не писать, а так — будь добр документировать все свои выебоны, плохо накладывающиеся на твой высокоуровнёвый ассемблер of choice.@minoru если человек не может одним взглядом охватить сразу цикл из семи строк, то я его заваливаю на собеседовании
@qnikst хз где. у нас просто принято писать комментарии, только если тут действительно «собака зарыта», а если на следующей строчке после while стоит if, а на строке за ним стоит return, то нехуй код комментариями засорять
(let (loop [a 10]) (loop (add1 a)))
вы ебанулись все чтоли? хуле тут обсуждать? ппц bikeshed color во все пояля