User
Понял вас. Возможно, я поспешил с выводами. Постараюсь чуть более глубже поисследовать эту тему. Спасибо за подробный ответ и понимание!
Зачем это нужно, если в Go уже существуют нативные генераторы, в том числе и обобщенные (Generic)?
Не хочу задеть этим комментарием автора, но, по своей сути, изобретаем велосипед заново?
Или как их ещё называют range functions, которые в своей имплементации ничем не отличаются от представленного в статье примера
range functions
Взять то же самое семейство Seq0 из пакета iter:
Seq0
iter
type Seq[V any] func(yield func(V) bool)
Который можно использовать аналогично:
import "iter" func GenerateNumbers() iter.Seq[int] { return func(yield func(int) bool) { someNumbers := []int{1, 2, 3} for _, v := range someNumbers { if !yield(v) { return } } } }
И использовать их аналогично в for-range
for-range
Было бы очень интересно увидеть от Вас вторую часть по второй версии тренажера))Я очень заинтересован!
Понял вас. Возможно, я поспешил с выводами. Постараюсь чуть более глубже поисследовать эту тему. Спасибо за подробный ответ и понимание!
Зачем это нужно, если в Go уже существуют нативные генераторы, в том числе и обобщенные (Generic)?
Не хочу задеть этим комментарием автора, но, по своей сути, изобретаем велосипед заново?
Или как их ещё называют
range functions
, которые в своей имплементации ничем не отличаются от представленного в статье примераВзять то же самое семейство
Seq0
из пакетаiter
:Который можно использовать аналогично:
И использовать их аналогично в
for-range
Было бы очень интересно увидеть от Вас вторую часть по второй версии тренажера))
Я очень заинтересован!