Size: a a a

2020 March 07

VM

Vladislav Milenin in Go-go!
В итоге способ прижился и забили :)
источник

VM

Vladislav Milenin in Go-go!
Можно парсить текст ошибки, но если что в настройках языка бд изменится - будет факап
источник

m

many-faced in Go-go!
мде
источник

MM

Michael M in Go-go!
Привет!
Нашёл тут https://github.com/golang/go/wiki/SliceTricks красивый способ удалить i-ый элемент из слайса:
a = append(a[:i], a[i+1:]...)
но пишут, что если слайс содержит указатели, то будет утечка.

Если я верно помню, когда работает GC, он сначала бежит от рутового элемента и помечает все элементы, на которых есть ссылки. А потом удаляет всё остальное. С таким GC утечки не будет. Почему тогда пишут про утечку?
источник

MN

Mykyta Nikitenko in Go-go!
Michael M
Привет!
Нашёл тут https://github.com/golang/go/wiki/SliceTricks красивый способ удалить i-ый элемент из слайса:
a = append(a[:i], a[i+1:]...)
но пишут, что если слайс содержит указатели, то будет утечка.

Если я верно помню, когда работает GC, он сначала бежит от рутового элемента и помечает все элементы, на которых есть ссылки. А потом удаляет всё остальное. С таким GC утечки не будет. Почему тогда пишут про утечку?
Не будет никакой утечки
источник

RS

Roman Sharkov in Go-go!
Michael M
Привет!
Нашёл тут https://github.com/golang/go/wiki/SliceTricks красивый способ удалить i-ый элемент из слайса:
a = append(a[:i], a[i+1:]...)
но пишут, что если слайс содержит указатели, то будет утечка.

Если я верно помню, когда работает GC, он сначала бежит от рутового элемента и помечает все элементы, на которых есть ссылки. А потом удаляет всё остальное. С таким GC утечки не будет. Почему тогда пишут про утечку?
если я правильно понимаю, то тут речь о том, что мы элемент удаляем, а на самом деле он по прежнему референсируется нашим изначальным срезом, поэтому его собрать нельзя
источник

A

Alexey 〒. in Go-go!
Roman Sharkov
если я правильно понимаю, то тут речь о том, что мы элемент удаляем, а на самом деле он по прежнему референсируется нашим изначальным срезом, поэтому его собрать нельзя
Там ниже решение без утечки было
источник

АП

Александр Попов in Go-go!
народ есть у кого в закладках статьи по движку гоу?
источник

АП

Александр Попов in Go-go!
"как устроено map внутри" "как устроен слайс" "планировщик (особенно 1.9)"
источник

s

stixlink in Go-go!
источник

p

pragus in Go-go!
Michael M
Привет!
Нашёл тут https://github.com/golang/go/wiki/SliceTricks красивый способ удалить i-ый элемент из слайса:
a = append(a[:i], a[i+1:]...)
но пишут, что если слайс содержит указатели, то будет утечка.

Если я верно помню, когда работает GC, он сначала бежит от рутового элемента и помечает все элементы, на которых есть ссылки. А потом удаляет всё остальное. С таким GC утечки не будет. Почему тогда пишут про утечку?
А зачем? Ну и не быстрее ли будет явная версия?
источник

MM

Michael M in Go-go!
pragus
А зачем? Ну и не быстрее ли будет явная версия?
явная - это какая?
источник

ЕО

Евгений Омельченко in Go-go!
Roman Sharkov
если я правильно понимаю, то тут речь о том, что мы элемент удаляем, а на самом деле он по прежнему референсируется нашим изначальным срезом, поэтому его собрать нельзя
Можно перед этим a[i] = nil зделоть
источник

ЕО

Евгений Омельченко in Go-go!
Но я бы всё-таки for i, x := range a делал и копировал по элементам
источник

Z

Zver in Go-go!
Евгений Омельченко
Но я бы всё-таки for i, x := range a делал и копировал по элементам
Поэлементно копировать дольше.
источник

Z

Zver in Go-go!
Особенно байтики.
источник

Z

Zver in Go-go!
И иже с ними.
источник

MM

Michael M in Go-go!
Евгений Омельченко
Но я бы всё-таки for i, x := range a делал и копировал по элементам
Это на питоне? 😊
источник

ВС

Владимир Столяров in Go-go!
Так такой append же вроде релоцирует весь массив целиком, точно ли быстрее?
источник

ПК

Паша Калугин in Go-go!
Владимир Столяров
Так такой append же вроде релоцирует весь массив целиком, точно ли быстрее?
?
источник