Провести ревью кода, пофиксить (если необходимо), назвать что выведет программа.
Условие
Заголовок раздела «Условие»Провести ревью кода, пофиксить (если необходимо), назвать что выведет программа.
type Agent struct { ID int Enabled bool}
func (a Agent) Enable() { a.Enabled = true}
type Enabler interface { Enable()}
func main() { agents := make([]Agent, 0, 5) for i := 0; i < 2; i++ { agents = append(agents, Agent{ID: i}) }
addThirdPartyAgents(agents)
pipe := make(chan Enabler)
go pipeSend(pipe, agents) go pipeEnableProcess(pipe)}
func addThirdPartyAgents(agents []Agent) { thirdParty := []Agent{ {ID: 4}, {ID: 5}, } agents = append(agents, thirdParty...)}
func pipeSend(pipe chan Enabler, agents []Agent) { for _, а := range agents { pipe <- a }}
func pipeEnableProcess(pipe chan Enabler) { for { select { case a := <-pipe: a.Enable() dbWrite(a) } }}
var dbWrite = func(a any) { fmt.Println(a) time.Sleep(time.Second * 1)}Решение
Заголовок раздела «Решение»Источник: Wildberries / WB - 7 (Платежный шлюз)
← Что выведет код? · Все задачи · Go · Написать асинхронный инкремент счетчика… →