Size: a a a

2020 May 05

p

pragus in Go-go!
Calculon
это просто вызов функции
тебе не нужен просто вызов. ты же не итерируешься просто так. и главная беда такого подхода - он практически ничего не дает по сравнению с явным for
источник

C

Calculon in Go-go!
pragus
тебе не нужен просто вызов. ты же не итерируешься просто так. и главная беда такого подхода - он практически ничего не дает по сравнению с явным for
а что даёт for?
источник

p

pragus in Go-go!
Calculon
а что даёт for?
я про for + range. ну или for + iter.Next()
источник

p

pragus in Go-go!
и за итератором удобно прятать отложенные вычисления
источник

C

Calculon in Go-go!
pragus
я про for + range. ну или for + iter.Next()
почему это лучше чем мой вариант?
источник

C

Calculon in Go-go!
по-моему the same
просто подход разный
источник

A

Aikidos in Go-go!
Calculon
почему неудобно?
Потому что ты не можешь абстрагироваться от конкретного типа. У тебя будет:

IteratorInt, IteratorString и т.п.

Да и итераторы хороши тем, что можно писать:

iter.Filter(...).Map(...)

Так вот. В го так не получится. У тебя будет FilterInt, MapIntString, MapStringBool и дальше комбинаторный взрыв.
Или всё на пустых интерфейсах, что тоже такое себе.
источник

p

pragus in Go-go!
Aikidos
Потому что ты не можешь абстрагироваться от конкретного типа. У тебя будет:

IteratorInt, IteratorString и т.п.

Да и итераторы хороши тем, что можно писать:

iter.Filter(...).Map(...)

Так вот. В го так не получится. У тебя будет FilterInt, MapIntString, MapStringBool и дальше комбинаторный взрыв.
Или всё на пустых интерфейсах, что тоже такое себе.
еще ленивость.
источник

C

Calculon in Go-go!
Aikidos
Потому что ты не можешь абстрагироваться от конкретного типа. У тебя будет:

IteratorInt, IteratorString и т.п.

Да и итераторы хороши тем, что можно писать:

iter.Filter(...).Map(...)

Так вот. В го так не получится. У тебя будет FilterInt, MapIntString, MapStringBool и дальше комбинаторный взрыв.
Или всё на пустых интерфейсах, что тоже такое себе.
так речь же была про то что мы не можем ренжи имплементить для своих структур
источник

A

Aikidos in Go-go!
pragus
еще ленивость.
да
источник

C

Calculon in Go-go!
Aikidos
Потому что ты не можешь абстрагироваться от конкретного типа. У тебя будет:

IteratorInt, IteratorString и т.п.

Да и итераторы хороши тем, что можно писать:

iter.Filter(...).Map(...)

Так вот. В го так не получится. У тебя будет FilterInt, MapIntString, MapStringBool и дальше комбинаторный взрыв.
Или всё на пустых интерфейсах, что тоже такое себе.
выглядит слишком декларативно
источник

C

Calculon in Go-go!
уровень декларативности превышен
источник

C

Calculon in Go-go!
обеззараживаем чат
источник

p

pragus in Go-go!
Calculon
так речь же была про то что мы не можем ренжи имплементить для своих структур
вот у нас type Some struct { items []string } и как ты предлагаешь делать?
источник

p

pragus in Go-go!
нарисовать (s Some) Apply(func(item string)) ?
источник

C

Calculon in Go-go!
pragus
нарисовать (s Some) Apply(func(item string)) ?
да
Только почему apply?
источник

p

pragus in Go-go!
Calculon
да
Только почему apply?
окей, а как она должна называться? если я хочу из этой коллекции только определенные элементы?
источник

C

Calculon in Go-go!
pragus
окей, а как она должна называться? если я хочу из этой коллекции только определенные элементы?
по индексам хош получить?
источник

АП

Александр Попов... in Go-go!
pragus
окей, а как она должна называться? если я хочу из этой коллекции только определенные элементы?
Apple
источник

АП

Александр Попов... in Go-go!
и требовать специальный приватный тип
источник