GOLANG_DIGEST Telegram 187
Развлекаемся с итераторами в Go

Перевод и оригинал

Очередной пост про итераторы в Go. Не воспринимайте его как руководство к действию, такого посыла там и нет. Скорее как повод порассуждать.

В чём суть. Автор недоволен громоздкими конструкциями по типу:

// В пакете slices нет функций Map, Filter или ForEach
// Это просто пример
slices.ForEach(
slices.Filter(
slices.Map(
slices.Reverse(slices.All([]int{1,2,3,4})),
func(i int) int { return i * i},
),
func(i int) bool { return i % 2 == 0 }
),
func(i int) { fmt.Println(i) }
)


И хочет сделать как в JS:

From([]int{1,2,3,4}).
Reverse().
Map(func(i int) int { return i * i }).
Filter(func(i int) bool { return i%2 == 0 })


Поэтому он реализовал методы: From (создание итератора), Collect (сбор в слайс), Each (обход), Reverse (разворот), Map (преобразование) и Filter.

Получается, конечно, красиво, но автор сам же признаёт:

я понимаю почему команда Go реализовала итераторы по другому


А я напомню, что желание красоты, без учёта других потребностей, когда-то привело людей к CoffeeScript.

#iterators #go_1_23
👍8🤔3



tgoop.com/golang_digest/187
Create:
Last Update:

Развлекаемся с итераторами в Go

Перевод и оригинал

Очередной пост про итераторы в Go. Не воспринимайте его как руководство к действию, такого посыла там и нет. Скорее как повод порассуждать.

В чём суть. Автор недоволен громоздкими конструкциями по типу:

// В пакете slices нет функций Map, Filter или ForEach
// Это просто пример
slices.ForEach(
slices.Filter(
slices.Map(
slices.Reverse(slices.All([]int{1,2,3,4})),
func(i int) int { return i * i},
),
func(i int) bool { return i % 2 == 0 }
),
func(i int) { fmt.Println(i) }
)


И хочет сделать как в JS:

From([]int{1,2,3,4}).
Reverse().
Map(func(i int) int { return i * i }).
Filter(func(i int) bool { return i%2 == 0 })


Поэтому он реализовал методы: From (создание итератора), Collect (сбор в слайс), Each (обход), Reverse (разворот), Map (преобразование) и Filter.

Получается, конечно, красиво, но автор сам же признаёт:

я понимаю почему команда Go реализовала итераторы по другому


А я напомню, что желание красоты, без учёта других потребностей, когда-то привело людей к CoffeeScript.

#iterators #go_1_23

BY Golang Дайджест




Share with your friend now:
tgoop.com/golang_digest/187

View MORE
Open in Telegram


Telegram News

Date: |

Telegram is a leading cloud-based instant messages platform. It became popular in recent years for its privacy, speed, voice and video quality, and other unmatched features over its main competitor Whatsapp. Ng, who had pleaded not guilty to all charges, had been detained for more than 20 months. His channel was said to have contained around 120 messages and photos that incited others to vandalise pro-government shops and commit criminal damage targeting police stations. 1What is Telegram Channels? Find your optimal posting schedule and stick to it. The peak posting times include 8 am, 6 pm, and 8 pm on social media. Try to publish serious stuff in the morning and leave less demanding content later in the day. Those being doxxed include outgoing Chief Executive Carrie Lam Cheng Yuet-ngor, Chung and police assistant commissioner Joe Chan Tung, who heads police's cyber security and technology crime bureau.
from us


Telegram Golang Дайджест
FROM American