Эйч
Эйч
  • Эйч Плюс
  • Все менторы
Задачи/Go-разработчик/Объединение данных из нескольких каналов

Объединение данных из нескольких каналов

Условие задачи

Имеется 2 входных канала in1 и in2, и один выходной канал out. Реализовать функцию merge, которая будет слушать оба входных канала и отправлять данные из входных каналов в один выходной.

gopackage main

import (
 "fmt"
 "math/rand"
 "time"
)

func merge(ch ...<-chan int) <-chan int {
 out := make(chan int)
 // Требуется реализовать функцию, которая будет слушать оба канала
 // и отправлять данные из входных каналов в один выходной
 return out
}

func source(sourceFunc func(int) int) <-chan int {
 ch := make(chan int)
 go func() {
  defer close(ch)
  for i := 0; i < 10; i++ {
   ch <- sourceFunc(i)
   time.Sleep(time.Duration(rand.Intn(3)) * time.Second)
  }
 }()
 return ch
}

func main() {
 rand.Seed(time.Now().UnixMilli())

 in1 := source(func(_ int) int {
  return rand.Intn(7)
 })

 in2 := source(func(i int) int {
  return i
 })

 out := merge(in1, in2)

 for val := range out {
  fmt.Println("Value:", val)
 }
}

Профессия

Go-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

🍪 Мы используем cookie и Яндекс Метрику, чтобы сайт работал и становился лучше. Подробнее в политике.

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Сервисы
AI поиск работы newПоиск вакансий newПоиск компаний newКонструктор резюме newВопросы с собеседований newЗадачи с собеседований newГайды к собеседованиям newПроверятор резюме newГенератор сопроводительных new
Поиски себя
Войти в ITКарьерная стратегияПовысить доходПрофориентация
Работа в России
Сопровождение до оффера Найти работу в РоссииРевью портфолиоРевью резюмеТестовое собеседование
Работа за рубежом
Найти работу за границейПомощь в оформлении LinkedInРевью резюме на английскомТестовое собеседование на английском
Навыки
Личный брендОценка навыковРазвитие навыков и компетенций
Поддержка
ВыгораниеОтношения с коллективомОтношения с руководителемСиндром самозванцаСложное увольнение
Для бизнеса
Аудит процессов компанииВыступление на внутреннем мероприятии компанииКонсалтинг бизнеса
Профессии
HRАдминистрированиеАналитикаДизайнИнформационная безопасностьИскусственный интеллектИсследованияКонсалтингКонтентМаркетингМенеджментНаука и образованиеОфисПоддержкаПредпринимательство
Компания
С чем помогаемОтзывы Вопросы и ответыСертификатыВебинарыСтать ментором

Услуги оказывает ООО «Эйч Карьера»
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, г. Москва, Старопименовский пер., д. 18, стр. 2, помещ./ком./этаж I/19/2
Платформа принадлежит ООО «Эйч Карьера»

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта