Sobes.tech
Junior — Middle

Може ли да създадете канал без да посочвате неговия размер по време на инициализация?

sobes.tech AI

Отговор от AI

Да, в Go може да се създаде канал без да се посочи неговият размер — това ще бъде небуфериран канал. Такъв канал блокира изпращача, докато получателят не прочете стойността, и обратно. Пример за създаване на небуфериран канал:

ch := make(chan int) // небуфериран канал

Ако искате да създадете буфериран канал с определен размер, посочвате втория параметър:

ch := make(chan int, 10) // канал с буфер за 10 елемента

По този начин, размерът по подразбиране на канала е нула, и той работи като механизъм за синхронизация между горутините.