TICKER · SELECT
Trung cấp
CA 04 / 08
Tưới cây tự động — sao không for range đơn giản?
Hệ thống tưới cây tự động theo lịch:
ticker := time.NewTicker(15 * time.Second)
defer ticker.Stop()
for {
select {
case <-ticker.C:
waterPlants()
case <-ctx.Done():
return // nhận lệnh dừng, thoát vòng lặp ngay
}
}
❯ Vì sao dùng select với cả ticker.C VÀ ctx.Done(), thay vì chỉ vòng lặp for range ticker.C { waterPlants() } đơn giản?