Можете ли вы программно определить отправителя значения по каналу go от получателя? - PullRequest
3 голосов
/ 24 апреля 2020

Допустим, у меня есть буферизованный канал с различными функциями {A, B, C и D}, отправляющими значения в канал в разное время. Теперь, если я читаю уведомление с канала, есть ли способ определить, от какого отправителя оно пришло? Логически я бы предположил, что нет, но у меня недостаточно понимания внутренних элементов канала, чтобы знать, что еще возможно?

Если бы этот канал был, возможно, небуферизованным каналом, вы могли бы найти соответствующего отправителя, как если бы вы получали значение Вы не можете двигаться дальше, пока в это время не будет отправлен один отправитель.

Является ли единственным способом быть уверенным в том, что вы загружаете delve и просматриваете все программы, которые работают в данный момент или ставят записи в журнал перед каждой отправкой на канал?

Спасибо

1 Ответ

2 голосов
/ 24 апреля 2020

Невозможно определить, кто отправил значение, полученное вами из канала.

Но это легко реализовать, если вам это нужно. Просто оберните значение и идентификатор отправителя в структуру и измените отправителей для отправки значения структуры на канал, заполнив идентификатор отправителя.

...