Перейти к содержимому

Что выведет программа и почему? Также нужно пофиксить код.

go · puzzlesTinkoff / Тинькофф (T-Bank / Т-Банк) - Платформа1 кв 2025не решено

Что выведет программа и почему? Также нужно пофиксить код.

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 · Что выведет программа и почему? Также н… →