Junior — Middle
Որտեղ պետք է փակել ալյումինը կոդում?
sobes.tech AI
Պատասխան AI-ից
Go-ում ալիքը պետք է փակել այն վայրում, որտեղ այն ստեղծվել է և որտեղ այլևս տվյալներ ուղարկելու ծրագիր չկա։ Սովորաբար, դա անում է ուղարկողը՝ նշելու համար ստացողներին, որ տվյալներ այլևս չեն լինելու։
Մեծ կարևորություն է ներկայացնում.
- Ստացողները կարող են ստուգել ալիքի փակումը ընթերցման ժամանակ։
- Միայն ուղարկողը պետք է փակել ալիքը՝ խուսափելու панիկից։
Օրինակ՝
ch := make(chan int)
func() {
defer close(ch) // փակել ալիքը բոլոր տվյալները ուղարկելուց հետո
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // ստանում ենք տվյալներ, մինչև ալիքը փակվի
}