Junior — Middle
Може ли да създадете канал без да посочвате неговия размер по време на инициализация?
sobes.tech AI
Отговор от AI
Да, в Go може да се създаде канал без да се посочи неговият размер — това ще бъде небуфериран канал. Такъв канал блокира изпращача, докато получателят не прочете стойността, и обратно. Пример за създаване на небуфериран канал:
ch := make(chan int) // небуфериран канал
Ако искате да създадете буфериран канал с определен размер, посочвате втория параметър:
ch := make(chan int, 10) // канал с буфер за 10 елемента
По този начин, размерът по подразбиране на канала е нула, и той работи като механизъм за синхронизация между горутините.