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

Провести ревью кода, пофиксить (если необходимо), назвать что выведет программа.

go · puzzlesWildberries / WB - 7 (Платежный шлюз)не решено

Провести ревью кода, пофиксить (если необходимо), назвать что выведет программа.

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 · Написать асинхронный инкремент счетчика… →