- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
for (const auto& item : items)
{
if (!item.isValid())
continue;
else
{
// 200 строк кода
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
for (const auto& item : items)
{
if (!item.isValid())
continue;
else
{
// 200 строк кода
}
}
Что делать с такими колегами?
* выводов типов нет (никаких autor)
* итератор это просто поинтер (++ двигает его дальше, * разыменовывает). Последний элемент указывает на NULL (вместо isValid()
спасибо
Тип содержимого items неизвестен, перевести нельзя.
Какай ансикл )))
Рассказать им про «PHP».
Совсем другое дело!
1. of существует только в ES6, поэтому не поддерживается старыми браузерами.
2. in существует давно, но перечисляет не индексы массива, а все свойства объекта, включая встроенные, унаследованные от базового объекта, поэтому всё это лишнее дерьмо приходится отфильтровывать с помощью hasOwnProperty.
3. Метод forEach существует лишь для некоторых объектов: Array.prototype.forEach(), Map.prototype.forEach(), Set.prototype.forEach().
3а. Довольно популярный объект NodeList, имеющий отношение к DOM, это не массив, а неведомая хрень, реализующая интерфейс массива лишь частично, поэтому в большинстве браузеров метод NodeList.prototype.forEach() отсутствует (на текущий момент NodeList.prototype.forEach() реализовали только в «Webkit», что привело к появлению сайтов, работающих только в «Хроме» и в его клонах).
Кстати, грубый хак:
Ничего не забыл?
Кстати, они этот "DOM" с жабы спиздили?
Т.е. джаваскрипт это всё-таки скрипт для джавы.
Кстати, был веб-браузер «Hotjava», целиком написанный на «Java». Он полностью поддерживал «HTML3», в который входили элементы, которые пото́м удалили из «HTML» и перенесли в «MathML» и в «SVG» (не совсем точно, у некоторых элементов поменялись названия и синтаксис, но общая идея такая).
Изначально был только "in": он возвращал ключи(филды и методы).
Так как Array это просто object, то возвращались там length и прочая хуита, и итерироваться так было нельзя.
нужно было явно брать length и делать обычный сишный for:
for(var i = 0; i < petuh.length; i++)
В какой-то момент завезли "of" и теперь по массиву можно ходить через of.
Спутать of и in -- любимая ошибка несчастного программиста, волею судеб занесенного в джаваскрипт парашу.
forEach (и некоторые другие методы вроде map) были завезены в Array, но не в любой итерируемый тип. Кирипичи по поводу того, что из коробки нельзя вызвать forEach у обычного итератора, уже были неоднократно отложены на говнокоде.
Приходится преобразовывать в моссив
Можно написа́ть Pituh.prototype.forEach = Array.prototype.forEach; и течь.
Хвала прототипному погромированию!
Аггау.ргототуре.русНя.са11
в каком прекрасном языке у тебя еще есть такая подстава?
http://blogs.perl.org/users/rurban/2014/04/do-not-use-each.html
ну охуеть теперь, давайте менять стейт у стейтфулного итератора
попробуй сделать это в жабе или в шарпе
познамишься с ConcurrentModificationException
>Not re-entrant
типа нельзя итерируясь по хешу итернуться по тому же эешу?
итератор один на хеш?
ох, мама, лол
Именно поэтому я против «each».
сослик -- услик
сослик -- паукан
услик -- сослик
услик -- паукан
паукан -- сослик
паукан -- услик
http://ideone.com/8DnET3
Просто не надо пользоваться устаревшим говном типа «each», которое за каким-то чёртом вытащили из «Перла».
Вот зачем функция each в «PHP»?
https://deti-i-knigi.livejournal.com/19709.html
https://deti-i-knigi.livejournal.com/17225.html
Помоги тогда отгодать букву "В"
Тут и без подвала понятно
https://ic.pics.livejournal.com/deti_i_knigi/68952318/175530/175530_original.jpg
Надо еще придумать смешную загадку про подкладку куртки, или про загубник от трубки
Кто найдет проблему, тому -- ничего.
Именно поэтому я за «чистые функции».
Именно поэтому я за "Notepad++".
https://weekly-geekly.github.io/articles/457972/index.html
В boost все есть: https://www.boost.org/doc/libs/1_52_0/libs/range/doc/html/range/reference/adaptors/reference/filtered.html
А в С++20 будет и в стандарте (вместе с новыми "приколами" из-за ленивого вычисления).
Но тут не в том говно. Код вполне читаемый, там filter как пятое колесо будет (на "выебнуться").
Переведи на «PHP».
Тогда так:
http://ideone.com/4bsI7j
Хотя я мог и напутать, давненько я не брал в руки дотнета.
По сути тот же принцип, что и при построении сферы через октаэдр
Именно поэтому я за Ruby
Именно поэтому я за "CSS".