Size: a a a

Dart & Flutter по-русски

2020 June 12

n

neikist in Dart & Flutter по-русски
Юрий
И вообще кто в пятницу работает тот смерти шефу желает
Ну вот((
источник

D

Dagba  in Dart & Flutter по-русски
Ребят объясните плз, чем обоснован этот boilerplate код, когда после маппинга листа ее нужно конвертировать обратно в лист?
источник

n

neikist in Dart & Flutter по-русски
Dagba 
Ребят объясните плз, чем обоснован этот boilerplate код, когда после маппинга листа ее нужно конвертировать обратно в лист?
Потому что возвращает ленивый итератор, который не наследник листа и не позволяет, например, произвольного доступа.
источник

D

Dagba  in Dart & Flutter по-русски
neikist
Потому что возвращает ленивый итератор, который не наследник листа и не позволяет, например, произвольного доступа.
понятно что возвр итератор, но зачем это нужно?
источник

n

neikist in Dart & Flutter по-русски
Dagba 
понятно что возвр итератор, но зачем это нужно?
Ну потому видимо что разрабы прикинули что частый кейс когда именно лениво вычислять нужно элементы.
источник

EE

Evgenii <JonFir&g... in Dart & Flutter по-русски
neikist
Ну потому видимо что разрабы прикинули что частый кейс когда именно лениво вычислять нужно элементы.
на самом деле это довольно редкий кейс)
источник

n

neikist in Dart & Flutter по-русски
Evgenii Elchev
на самом деле это довольно редкий кейс)
А вот с этим я согласен. Но иного объяснения я придумать не могу
источник

EE

Evgenii <JonFir&g... in Dart & Flutter по-русски
у нас в swift есть такой модификатор lazy, который может сделать коллекцию и все вычисления на ней сделать ленивыми и я вот уже 5 лет ищу куда бы его воткнуть и не могу найти) почти всегда тебе нужна вся коллекция)
источник

EE

Evgenii <JonFir&g... in Dart & Flutter по-русски
нет такого поинта что ты ее мапнул и взял только один элемент а через какое то время второй)
источник

EE

Evgenii <JonFir&g... in Dart & Flutter по-русски
на самом деле дарт очень бойлерплейтовый
источник

EE

Evgenii <JonFir&g... in Dart & Flutter по-русски
очень
источник

n

neikist in Dart & Flutter по-русски
Evgenii Elchev
нет такого поинта что ты ее мапнул и взял только один элемент а через какое то время второй)
Ну, могу представить кейс что нужно взять какой нибудь firstWhere, но это нужно конечно всяко реже чем лист после map заиметь
источник

D

Dagba  in Dart & Flutter по-русски
еше этот orNull параметр в where методах facepalm -_-
источник

EE

Evgenii <JonFir&g... in Dart & Flutter по-русски
neikist
Ну, могу представить кейс что нужно взять какой нибудь firstWhere, но это нужно конечно всяко реже чем лист после map заиметь
ну смотри. у нас есть список [1, 2, 3, 4, 5, 6, 7, 8, ..., n]
нам надо его преобразовать, пусть для примера возвести в квадрат
взять заранее известный элемент. Например 1 или второй

ты делаешь вот так

final a = pow(list[1])

и все, Лень бы помогла если бы делали наоборот

final a = list.map((e)=> pow(e))[1]

но во первых нафиг так делать? во вторых там итератор последовательный, ты не можешь получить доусп по индексу, то есть мой пример не сработает) если тебе нужен 7ой элемент то ты будешь итерировать 7 раз)
источник

AK

Artem Krupp in Dart & Flutter по-русски
Dagba 
понятно что возвр итератор, но зачем это нужно?
затем чтобы чейн не порождал новых листов
источник

EE

Evgenii <JonFir&g... in Dart & Flutter по-русски
короче это все полезно только в одном кейсе, если тебе надо вытягивать элементы из списка не сразу, а по очереди, ну например при проккрутке ListView тогда это будет полезно)
источник

n

neikist in Dart & Flutter по-русски
Evgenii Elchev
ну смотри. у нас есть список [1, 2, 3, 4, 5, 6, 7, 8, ..., n]
нам надо его преобразовать, пусть для примера возвести в квадрат
взять заранее известный элемент. Например 1 или второй

ты делаешь вот так

final a = pow(list[1])

и все, Лень бы помогла если бы делали наоборот

final a = list.map((e)=> pow(e))[1]

но во первых нафиг так делать? во вторых там итератор последовательный, ты не можешь получить доусп по индексу, то есть мой пример не сработает) если тебе нужен 7ой элемент то ты будешь итерировать 7 раз)
Ну там есть возможность по индексу взять, вот только да, пробегать все равно будет предыдущие элементы по идее
источник

EE

Evgenii <JonFir&g... in Dart & Flutter по-русски
Artem Krupp
затем чтобы чейн не порождал новых листов
по хорошему это должен компилятор оптимизровать без участия прогарммиста, он обладает всем необходимыми данными
источник

n

neikist in Dart & Flutter по-русски
Прикольно кстати "Iterating multiple times over the returned Iterable will invoke the supplied function f multiple times on the same element."
Видать память экономят
источник

AK

Artem Krupp in Dart & Flutter по-русски
Evgenii Elchev
по хорошему это должен компилятор оптимизровать без участия прогарммиста, он обладает всем необходимыми данными
что значит оптимизировать? у тебя есть метод, он должен что-то вернуть
источник