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