Size: a a a

2020 July 29

VS

Vladimir Smirnov in Go-go!
Георгий Папаскири
Грубо говоря, есть 200 хостов, надо по всем пройтись снмп, но ответ вернут не все, а запись в массив нужен результат только от тех, что ответили
тут можно заалокейтить массив на 200 элементов но там где ответа не будет - ничего в нем не менять и оставить nil или что там будет за тип данных и его пустое знаниче (невозможное в обычном случаи)
источник

ГП

Георгий Папаскири... in Go-go!
Andrey S
Ещё братьев "Греби-бля" и "Гребу-бля" подсадите...
😂😂😂 смерти нам желаешь
источник

ГК

Георгий Когония... in Go-go!
Andrey S
Ещё братьев "Греби-бля" и "Гребу-бля" подсадите...
Ой не, не надо)
источник

GS

Gleb Selyukov in Go-go!
Георгий Папаскири
Так что длина получаемого массива мне заранее не известна
Слайса, а не массива. array - Value тип, а slice это Handle к значению
источник

AS

Andrey S in Go-go!
Ну или lock + append - если тебе не важен порядок
источник

p

pragus in Go-go!
Andrey S
Ну или lock + append - если тебе не важен порядок
для порядка как раз нужен будет преаллоцированный слайс
источник

AS

Andrey S in Go-go!
для порядка я думаю там нужно просто сделать hl через замыкание а не параметром передавать - как и wg
источник

IK

Ilya Kaznacheev in Go-go!
func snmpNew(hosts []string) {
hl := make([]string, 0, len(hosts))
hc := make(chan string)
var wg sync.WaitGroup
wg.Add(len(hosts))
for _, host := range hosts {
 go func(host string) {
  defer wg.Done()
  hc <- host
 }(host)
}
go func() {
 wg.Wait()
 close(hc)
}()

for h := range hc {
 hl = append(hl, h)
}
fmt.Println(hl)
}
источник

ГП

Георгий Папаскири... in Go-go!
В принципе порядок не важен
источник

IK

Ilya Kaznacheev in Go-go!
В примере выше в функцию вообще ничего передавать особо не нужно, а все через замыкания сделать
источник

IK

Ilya Kaznacheev in Go-go!
Ща почищу
источник

АД

Алексей Долгов... in Go-go!
Ilya Kaznacheev
func snmpNew(hosts []string) {
hl := make([]string, 0, len(hosts))
hc := make(chan string)
var wg sync.WaitGroup
wg.Add(len(hosts))
for _, host := range hosts {
 go func(host string) {
  defer wg.Done()
  hc <- host
 }(host)
}
go func() {
 wg.Wait()
 close(hc)
}()

for h := range hc {
 hl = append(hl, h)
}
fmt.Println(hl)
}
ужс
источник

IK

Ilya Kaznacheev in Go-go!
Поправил
источник

АД

Алексей Долгов... in Go-go!
горутина одна может из канала читать
источник

AS

Andrey S in Go-go!
с каналом и wg в принципе не нужен...
источник

АД

Алексей Долгов... in Go-go!
зачем в цикле 2 горутины?
источник

EG

Evgeny Glyshko in Go-go!
Приветствую гурру GO) Скажите кто нибудь работал с prometheus?
источник

IK

Ilya Kaznacheev in Go-go!
Алексей Долгов
зачем в цикле 2 горутины?
В цикле одна
источник

AS

Andrey S in Go-go!
Evgeny Glyshko
Приветствую гурру GO) Скажите кто нибудь работал с prometheus?
наверное все...
источник

АД

Алексей Долгов... in Go-go!
Ilya Kaznacheev
В цикле одна
сорри, проглядел
источник