Size: a a a

2021 May 18

с

сонная википедия... in Go-go!
источник

ML

Maksim Litvinov in Go-go!
спасиб, тоже пригодится.
источник

Z

Zver in Go-go!
Копию делать элемента и не парится, если слайс весь не нужен.
источник

ML

Maksim Litvinov in Go-go!
всё ровно наоборот.
источник

ВС

Владимир Столяров... in Go-go!
тогда лучше keepalive
источник

ML

Maksim Litvinov in Go-go!
ссылки вида **byte, ссылающиеся на первый элемент слайса строк. Нужно сохранять весь слайс.
источник

ML

Maksim Litvinov in Go-go!
keepalive пока не требуется.
источник

ВС

Владимир Столяров... in Go-go!
просто так получается более явно
источник

ML

Maksim Litvinov in Go-go!
насколько я понимаю это просто адресация элемента для демонстрации его использования, т.е. идентично _ = p. К моему кейсу не относится.
источник

с

сонная википедия... in Go-go!
keepalive хитрым компиляторно-рантаймным хаком показывает что в этой точке объект все еще не должен быть собран как мусор
источник

ML

Maksim Litvinov in Go-go!
каким хаком? По-моему обычное использование переменной, в удобочитаемом формате, чтоб было понятно зачем оно там.
источник

с

сонная википедия... in Go-go!
https://github.com/golang/go/blob/master/src/runtime/cgo.go#L52
// The compiler cannot see that cgoAlwaysFalse is always false,
// so it emits the test and keeps the call

_ = p
компилятор успешно удаляет
источник

ML

Maksim Litvinov in Go-go!
ну ок
источник

p

poly in Go-go!
_ = i маркает для gc что можно тереть?
источник

с

сонная википедия... in Go-go!
_ = p компилятор вообще удалит
источник

с

сонная википедия... in Go-go!
возможно, вместе с объявлением
источник

p

poly in Go-go!
Вообще, где-то встречал подобные присвоения
источник

ML

Maksim Litvinov in Go-go!
это чтобы оставить неиспользуемые переменные.
источник

с

сонная википедия... in Go-go!
обычно они нужны чтоб bypass'ить правила об обязательном использовании переменной
источник

p

poly in Go-go!
Понял, сенкс
источник