Junior — Middle
Kā pabeigt darbu ar kanālu programmā?
sobes.tech AI
Atbilde no AI
Go valodā, lai pabeigtu darbu ar kanālu, tiek izmantota funkcija close(). Kanāla aizvēršana signalizē saņēmējiem, ka vairs netiks sūtītas jaunas vērtības. Pēc kanāla aizvēršanas mēģinājums sūtīt uz to izraisīs paniku, bet lasīšana no aizvērta kanāla ir iespējama — tas atgriezīs nulles vērtību un false kā otro atgriešanas parametru.
Piemērs:
ch := make(chan int)
ngo func() {
ch <- 42
close(ch) // Aizveram kanālu pēc sūtīšanas
}()
for val := range ch {
fmt.Println(val) // Izdrukās 42
}
Tādēļ, lai pabeigtu darbu ar kanālu, ir jāizsauc close(channel).