Sobes.tech
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).