Я новичок в движении.Каков правильный способ записи отдельного канала в Go?
Я пытаюсь найти простой способ реализовать канал, который выводит только отдельные значения.
То, что я хочу сделать это:
package example
import (
"fmt"
"testing"
)
func TestShouldReturnDistinctValues(t *testing.T) {
var c := make([]chan int)
c <- 1
c <- 1
c <- 2
c <- 2
c <- 3
for e := range c {
// only print 1, 2 and 3.
fmt.println(e)
}
}
Должен ли я быть беспокойство по поводу утечки памяти здесь, если бы я использовать карту, чтобы помнить предыдущие значения?
Спасибо.
Ваш дизайн выглядит так, будто вы пытаетесь сделать то, что вы не должны делать с каналами. Если заданный вами вопрос не является вашей фактической проблемой, а скорее проблемой, с которой вы столкнулись при попытке решить настоящую проблему, мы могли бы оказать вам лучшую помощь, когда вы покажете нам свою фактическую проблему. – fuz
Если не так важно, чтобы тест дублирования был на 100% точным, вы можете рассмотреть возможность использования фильтра цветения (https://en.wikipedia.org/wiki/Bloom_filter). – fuz
@FUZxxl Я пытаюсь постоянно ломать сайт для данных в течение определенного периода времени, прежде чем я закрою канал. Однако у меня проблема с получением дублированных данных, я пытаюсь найти простой способ получить только отдельные значения для потребителя канала. Благодарю. – Misterhex