У меня есть приложение чата, использующее 2 go подпрограмм. Я хотел бы добавить / удалить записи в / из списка в одном потоке и прочитать тот же список из другого потока.
Поскольку я новичок в Go, я немного озадачен тем, какие данные структура должна использоваться. Я думал о ломтиках, но не уверен, что использую их правильно
func listener(addr *net.UDPAddr, clients *[] *net.UDPAddr, messages chan clientMessage) {
for {
*clients=append(*clients,otherAddr)
}
}
func sender(messages chan clientMessage,clients *[] *net.UDPAddr) {
for {
message :=<- messages
for _,client := range *clients {
fmt.Printf("Message %s sent to %s\n", message.message, client.String())
}
}
}
func main() {
var clients [] *net.UDPAddr
go listener(s,&clients,messageCh)
go sender(messageCh,&clients)
}