Size: a a a

Полуночные айтишники

2019 December 26

YV

Yuri V in Полуночные айтишники
Nikolay
Goto костыль
В некоторых случаях без него не обойтись. Если тебе надо через три уровня вложенности циклов выйти, к примеру. Но с лямбдами он не работает, scope лямбды замкнут :)
источник

YV

Yuri V in Полуночные айтишники
goto Из лямбды даже не скомпилируется :)
источник

N

Nikolay in Полуночные айтишники
Я выбрал break
источник

A

Arstan in Полуночные айтишники
Yuri V
Она очень близка к плюсам, семантика почти один-в-один :)
Меня коллеги не поймут, если я где-то goto напишу)
Вообще интересно, насколько я далеко от оптимизации пока нахожусь. Потому что я конечно оптимизирую, но пока что в основном только правлю свои же косяки. И там о ньюансах производительности речь не идет, там скорее "оптимизируй этот скуль запрос, а то ведь 15 сек(!!!) выполняется". А там предикаты jpa
источник

N

Nikolay in Полуночные айтишники
Но судя по всему я не прав
источник

YV

Yuri V in Полуночные айтишники
Arstan
Меня коллеги не поймут, если я где-то goto напишу)
Вообще интересно, насколько я далеко от оптимизации пока нахожусь. Потому что я конечно оптимизирую, но пока что в основном только правлю свои же косяки. И там о ньюансах производительности речь не идет, там скорее "оптимизируй этот скуль запрос, а то ведь 15 сек(!!!) выполняется". А там предикаты jpa
Я избегаю его с тех пор, как структурное программирование в институте сдавал. Но изредка, раз в 5-10 лет, бывают ситуации, где он просто нужен и все.
источник

YV

Yuri V in Полуночные айтишники
Тут суть в чем. Циклы с лямбдами - они хитрые. Там, где с обычными циклами мы бы параметризовали цикл или поставили бы условие выхода в while - можно запросто огрести лишние итерации. Ну и просесть по перфомансу. И надо выскочить по граничному условию вообще на верхний уровень вложенности.
источник

YV

Yuri V in Полуночные айтишники
Nikolay
Но судя по всему я не прав
Нет, неправ :) Близок - но неправ :) Но тут реально тонкость. break синтаксически там не сработает как выход наружу, даже если внутри лямбды case стоит. Точнее, case-то он прервет. Но оставит в теле цикла управление :)
источник

YV

Yuri V in Полуночные айтишники
Я приведу пример. У вас есть сплиттер, дробящий строку на токены. Токенов может быть любое количество. И вам надо выйти из цикла, взяв только первые два токена и всегда только первые два токена. :)
источник

YV

Yuri V in Полуночные айтишники
Там есть изящное решение на итераторах. Но оно крутиться до конца строки в цикле будет :)
источник

YV

Yuri V in Полуночные айтишники
А нахрена нам крутиться до конца строки, если нужно только первые 1 или 2 токена взять, причем всегда? :)
источник

YV

Yuri V in Полуночные айтишники
То есть на второй итерации нам надо выпрыгнуть из цикла, потому что мы уже распихали нужные токены по вектору :)
источник

YV

Yuri V in Полуночные айтишники
Мнения-то как разделились :))))))))))
источник

YV

Yuri V in Полуночные айтишники
Не буду подсказывать :) Подумайте еще :)
источник

N

Nikolay in Полуночные айтишники
источник

A

Arstan in Полуночные айтишники
Ты не на d3 это увидел?)) Только что туда зашел и это углядел)
источник

N

Nikolay in Полуночные айтишники
Там
источник

YV

Yuri V in Полуночные айтишники
Суперская картинка 😂😂😂😂👍👍👍👍👍
источник

k

kazgeek in Полуночные айтишники
В сях не силен, но если передать состояние - то ретурн, безусловный выход - бряк. А готу вообще моветон вроде.
источник

YV

Yuri V in Полуночные айтишники
kazgeek
В сях не силен, но если передать состояние - то ретурн, безусловный выход - бряк. А готу вообще моветон вроде.
Горячо-горячо :)
источник