Junior — Middle
რამდენი ელემენტი შეიძლება განთავსდეს არხში?
sobes.tech AI
პასუხი AI-სგან
Go-ში, არხში მაქსიმალური ელემენტების რაოდენობა დამოკიდებულია მის ბუფერზე. არხი შეიძლება იყოს ბუფერული ან ბუფერის გარეშე.
- თუ არხი ბუფერის გარეშეა (
make(chan Type)-ით შექმნილი), ის შეიძლება შეიცავდეს 0 ელემენტს — გაგზავნა ბლოკდება მიღებამდე. - თუ არხი ბუფერულია (
make(chan Type, N)-ით შექმნილი), მაქსიმალური ელემენტების რაოდენობა თანხვედრია ბუფერის ზომასN.
თეორიულად, ბუფერის ზომა შეზღუდულია ხელმისაწვდომი მეხსიერებით და int ტიპით (64-ბიტიან სისტემებზე ეს ძალიან დიდი რიცხვია). თუმცა პრაქტიკაში, ძალიან დიდი ბუფერი არაეფექტურია და მეხსიერების გადამეტებულ გამოყენებას იწვევს.
100 ელემენტიანი ბუფერული არხის შექმნის მაგალითი:
ch := make(chan int, 100)