Junior
რა ოპერაციებს შეიძლება განახორციელოს Go-ში არხებთან?
sobes.tech AI
პასუხი AI-სგან
- გაგზავნა (
<-chan) - მიღება (
chan<-) - დახურვა (
close) - დახურვის შემოწმება (მეორე მნიშვნელობა მიღებისას)
- გამოყენება
select-ში - ბუფერის განსაზღვრა (
cap-ის გამოყენებით) - მიმდინარე ელემენტების რაოდენობის განსაზღვრა (
len-ის გამოყენებით)
მაგალითი:
// ბუფერიანი არხის შექმნა
ch := make(chan int, 5)
// მნიშვნელობის გაგზავნა
ch <- 10
// მნიშვნელობის მიღება
val := <-ch
// მიღებისას დახურვის შემოწმება
val, ok := <-ch
// არხის დახურვა
close(ch)
// `select`-ში გამოყენება
select {
case msg1 := <-ch1:
// ch1-დან შეტყობინებების დამუშავება
case msg2 := <-ch2:
// ch2-დან შეტყობინებების დამუშავება
default:
// ხელმისაწვდომი შეტყობინებები არ არის
}
// ბუფერის განსაზღვრა
bufferSize := cap(ch)
// მიმდინარე ელემენტების რაოდენობის განსაზღვრა
currentElements := len(ch)