227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
|
||||||
1 | ||||||
Можно ли и целесообразно ли использовать лямбду для присвоения значений полям массива объектов?21.12.2015, 11:30. Показов 1123. Ответов 28
Метки нет (Все метки)
Хочу использовать лямбду для присвоения значений полям массива объектов(такое что то написал )
Обычным циклом все гладко, а вот с лямбдой крэшит (
0
|
21.12.2015, 11:30 | |
Ответы с готовыми решениями:
28
Для чего ещё может быть нужен конструктор класса кроме присвоения полям класса начальных значений? Можно ли сокращать команды присвоения одинаковых значений для сжатия кода программы? использование FindComponent в циклах для считывания/присвоения параметров существующих объектов Как использовать .sort() для сортировки массива объектов по определенному свойству? |
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
21.12.2015, 11:32 | 2 |
минимальный рабочий пример проблемы тяжело скинуть настолько?)
0
|
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
|
||||||||||||||||
21.12.2015, 11:36 [ТС] | 3 | |||||||||||||||
Добавлено через 2 минуты rikimaru2013, Здравствуйте!!!
вот сам класс
0
|
Неэпический
|
||||||
21.12.2015, 11:37 | 4 | |||||
Ну сделал лямбду, а "запускать" её кто будет?
1
|
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
|
|
21.12.2015, 11:39 [ТС] | 5 |
Croessmah,
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
21.12.2015, 17:04 | 6 |
Croessmah, мне кажится или запись ТСа не требует лямбды, а если бы и требовала - то одиночный вызов не предпологает создание лябды - то есть вызов лямбы в такой форме - уже как-то неправильно.
Поднимаю вопрос с точки зрения обсуждения (название темы явно выдаст в поиске людям, что ищат информацию по лямбде). И вызов таким образом лямбды не то чего бы я лично хотел бы увидить в коде, который я читаю у себя в проекте (((( .
1
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
|
|
21.12.2015, 17:33 | 7 |
Немного погоди и скоро появится секта лямбдистов, они будут приходить в форум и троллить людей. Буде все гораздо хуже из-за обширного числа мест, куда можно впихнуть лямбды.
А тех кто похожим образом пишут (планируют такое в своих программах писать) - сами себе злобные буратино.
1
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
21.12.2015, 17:38 | 8 |
daslex, Я о том же) Я, например, только через время заметил, что ТС заметил функцию лямбдой просто "потому что". И меня почему-то насторожило, что увидить "()" будет крайне тяжело, потом понял, что лямбда тут вообще не надо. И если бы не daslex, не понял, что ТС просто учит тему "лямбда" и решил пихать её повсюду. Предлагаю итерацию цикла вынести в лямбду и в цикли вызывать лямбду. Вот будет весело)
0
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
|
||||||
21.12.2015, 18:43 | 9 | |||||
Я сомневаюсь, что ТС решил пихать ее повсюду. Это всего-лишь получение личного навыка, который помогает лучше понять некоторые моменты. Я тоже подобным образом экспериментирую, это помогает.
Меня лично насторожило не то стремление ТСа в изучении лямбд, а то, что ТС слишком сильно даже без них, осложняет и самому себе жизнь и косвенно осложняет некоторым другим. Я о "тяжести кода", даже если такой его код без лямбд, он очень тяжелый для глаз. Если бы ТС упрощал себе жизнь, то тогда подобные коды читаются вполне неплохо, легче видеть свои же ошибки. Такие коды напоминают ту кашу, от который уже давно убежали, когда все пишут в main, вместо того, чтобы разделять задачи. Почему проще? (Я не буду разбивать на файлы), простой пример
Но тем не менее, несмотря на наличие лямбды, код не стал тяжелым для глаз. Заодно можно рассмотреть некоторый момент lambda-capture с захватом по ссылке и по значению. (для массива объектов child)
1
|
hoggy
|
21.12.2015, 19:12
#11
|
0
|
Croessmah
|
21.12.2015, 19:15
#12
|
Не по теме: hoggy, настало время пожертвовать лямбде девственный разум
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||
21.12.2015, 19:22 | 13 | |||||
Лямбда бывает полезна когда нужно инициализировать константный объект путем вызова нескольких модифицирующих функций. Например:
const или создавать именованную функцию.
0
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
21.12.2015, 19:29 | 14 |
Гордон Фримен.
Добавлено через 5 минут Что и нужно делать.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
21.12.2015, 19:35 | 15 | |||||
в данной ситуации вы уже утратили профит от const
(в плане оптимизаций).
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
21.12.2015, 19:42 | 16 |
Именованная функция не нужна и только засорит пространство, если "инициализирующие" действия требуются только здесь и сейчас.
Собственно лямбды вообще не нужны, если всегда и везде делать именованную функцию. Это был всего лишь пример, реальная логика может быть существенно запутаннее, тогда парой тернарок не обойдешься.
0
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
21.12.2015, 19:54 | 17 |
Ничего не засорит. Для этого существуют нэймспейсы и генератор имен в мозгу. Сделай нэймспейсу и функции нормальное имя - читабельность повысится по сравнению с лямбдой, которая впихивает нетривиальные детали реализации инициализации в функцию, в которой мне они нафиг не сдались. Функции нужны не только для того, чтоб не дублировать код, но и для того, чтобы улучшать читабельность внятными именами и разделять уровни абстракции.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
21.12.2015, 19:56 | 18 |
если для более сложного случая тернарка получится чрезмерно громоздкой,
то и лямбда для такого случая так же окажется чрезмерно громоздкой. в таком случае стоит рассмотреть вариант именнованной функции.
0
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
|
|||||||||||
21.12.2015, 20:13 | 19 | ||||||||||
У меня есть вопрос по лямбдам.
Возвращаемый тип из лямбд, это что? Почему спрашиваю до лямбды
с лямбдой
Полагал, что сработает.
1
|
Неэпический
|
||||||
21.12.2015, 20:17 | 20 | |||||
Локальный класс зачем?
Добавлено через 1 минуту
1
|
21.12.2015, 20:17 | |
21.12.2015, 20:17 | |
Помогаю со студенческими работами здесь
20
Сортировка массива из объектов по 2-м полям класса Simulink. Какой блок можно использовать для выборки n значений входного и выходного сигнала? Массив объектов класса, отладка, доступ к полям элемента массива Когда целесообразно использовать winapi? Сколько потоков целесообразно использовать? Можно ли использовать итератор для обычного массива? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |