Я новичок в Go, и мне может не хватать точки, но почему каналы Go ограничены в максимальном буферизованном канале буферизации? Например, если я делаю канал как такПочему каналы каналов ограничивают размер буфера
channel := make(chan int, 100)
я не могу добавить больше чем 100 элементов в канал без блокировки, есть причина для этого? Кроме того, они не могут динамически изменяться, потому что API канала не поддерживает это.
Это похоже на ограничение в поддержке языка для универсальной синхронизации с одним механизмом, поскольку ему не хватает удобства по сравнению с неограниченным семафором. Например, значение обобщенного семафора может быть увеличено без ограничений.
Я понимаю, как работают буферные каналы. Мой вопрос был больше о том, почему они были разработаны с ограниченным буфером, а не с буфером динамического размера. ИМО. Имеет смысл позволить им хранить неограниченные значения без блокировки при использовании буферизованных каналов – Curious