Junior — Middle
Jaka jest maksymalna liczba elementów, które można umieścić na kanale?
sobes.tech AI
Odpowiedź od AI
W Go maksymalna liczba elementów w kanale zależy od jego bufora. Kanał może być z buforem lub bez.
- Jeśli kanał nie ma bufora (tworzony przez
make(chan Type)), może zawierać 0 elementów — wysyłanie blokuje się do momentu odbioru. - Jeśli kanał ma bufor (tworzony przez
make(chan Type, N)), maksymalna liczba elementów jest równa rozmiarowi buforaN.
Teoretycznie rozmiar bufora jest ograniczony dostępną pamięcią i typem int (na systemach 64-bitowych jest to bardzo duża liczba). Jednak w praktyce zbyt duży bufor jest nieefektywny i może prowadzić do nadmiernego zużycia pamięci.
Przykład tworzenia zbuforowanego kanału na 100 elementów:
ch := make(chan int, 100)