Vấn đề này khá phổ biến: một đối tượng nên thông báo cho tất cả người đăng ký khi một số sự kiện xảy ra. Trong C++, chúng tôi có thể sử dụng boost::signals
hoặc một thứ khác. Nhưng làm thế nào để làm điều này trong ngôn ngữ Go? Nó sẽ là tốt đẹp để xem một số ví dụ mã làm việc, nơi một vài đối tượng được đăng ký với một nhà xuất bản và thông báo quá trình.Mẫu quan sát bằng ngôn ngữ Go
Cảm ơn
Hãy cẩn thận với việc chặn hoạt động của kênh. –
@MizardX tất nhiên, thông thường tôi cũng muốn kiểm soát chan, như chan bool và sử dụng select {}, và thoát khỏi recv từ kênh điều khiển. Nhưng đó là tất cả khá tầm thường và một chút quá mức cho một ví dụ cơ bản. – cthom06
@MizardX: không phải là một chút giống như nói "cẩn thận với số học con trỏ" trong C? Cẩn thận với các kênh là 90% chương trình Go ;-) –