Ten problem jest dość powszechny: obiekt powinien powiadomić wszystkich swoich subskrybentów, gdy wystąpi pewne zdarzenie. W C++ możemy użyć boost::signals
lub czegoś innego. Ale jak to zrobić w języku Go? Byłoby miło zobaczyć przykład działającego kodu, w którym kilka obiektów subskrybuje wydawcy i przetwarza powiadomienia.Wzorzec obserwatora w języku Go
Dzięki
Należy zachować ostrożność podczas blokowania operacji na kanale. –
@MizardX oczywiście, normalnie też będę miał kontrolę nad chan, jak chan bool i użyję select {}, i wyjdę z recv z kanału kontrolnego. Ale to dość banalne i nieco przesadzone dla podstawowego przykładu. – cthom06
@MizardX: czy nie jest tak, jakby powiedzieć "uważaj na arytmetykę wskaźnika" w C? Bycie ostrożnym z kanałami to 90% programowania Go ;-) –