Что выведет программа и почему? Также нужно пофиксить код.
Условие
Заголовок раздела «Условие»Что выведет программа и почему? Также нужно пофиксить код.
func RunWriter() <-chan map[string]int { var prices = make(chan map[string]int)
go func() { var currentPrice = map[string]int{ "AAPL ": 163, "USD ": 117, "EUR ": 124, "NVDA ": 234, }
for i := 1; i < 5; i++ { for key, value := range currentPrice { currentPrice[key] = int(float64(value) * 1.3) }
prices <- currentPrice time.Sleep(100 * time.Millisecond) }
}()
return prices}
func RunProcessor(wg *sync.WaitGroup, prices []map[string]int) { go func() { defer wg.Done()
for _, price := range prices { for key, value := range price { price[key] = value + 1 }
fmt.Println(price) } }()}
func main() { p := RunWriter()
for price := range p { fmt.Println(price) }
var prices []map[string]int
for { value, ok := <-p if !ok { break }
prices = append(prices, value) }
for _, price := range prices { fmt.Println(price) }
wg := &sync.WaitGroup{}
for i := 0; i < 10; i++ { wg.Add(1) RunProcessor(wg, prices) }
wg.Wait()}Решение
Заголовок раздела «Решение»Источник: Tinkoff / Тинькофф (T-Bank / Т-Банк) - Платформа · 1 кв 2025
← Реализовать корректную функцию double (… · Все задачи · Go · Что выведет программа и почему? Также н… →