Konstantin
Ребят, какой самый каноничный способ отчистить слайс, чтобы точно не было никаких утечек и gc точно все старые данные потер?
Konstantin
И правильно ли я понимаю, что у го нет типа set?)
Konstantin
У него есть map
Его пока и использую)
Konstantin
Если нет ссылок, в том числе на массив внутренний, слайс будет почищен gc
а как мне его правильно отчистить то? Вот есть слайс из 10 элементов, мне надо их все послать и оставить пустой слайс
Slava
Копируешь элементы, посылаешь. Если слайс не нужен - освобождаешь ссылку
Slava
Если это долгая функция, то просто зануляешь. Или оно само занулится при выходе из функции
Slava
Итератор по слайсу возвращает копию
Slava
А в чем проблема? Почему вопрос возник такой?
Konstantin
А в чем проблема? Почему вопрос возник такой?
На SO на такой вопрос кто-то ответил, что если освобождать слайс так: slice = slice[:0], то GC не всегда корректно может обработать освободившиеся данные
Slava
Ну потому что это не освобождение
Slava
Ты переиспользуешь внутренний массив, а значит он не трется gc
Konstantin
Вот я и спрашиваю как это делать правильно
Slava
Скажи целиком свою задачу
Slava
С кодом вообще круто будет
Konstantin
Нет задачи тут, просто интересен сам вопрос.
Konstantin
Как отчистить слайс, чтобы старые данные потерлись, а в него засунуть новые
Slava
Нет задачи - нет и решения
Slava
Если данные это байты, то один каленкор
Slava
Если сложные объекты - другой
А ВОТ ТЕПЕРЬ ПАБЛИК
gccgo актуален еще?
А ВОТ ТЕПЕРЬ ПАБЛИК
а какая у ГО аналогия есть pm2?
dev_sheep
Ребята, а можно ли как-то проконтролировать жизненный процесс горутины? Я просто бота запустил, все довольны, но постоянно просят сделать отмену скачки по команде. А скачка - это есть горутина. Получается, надо ей какое-то имя присваивать, а потом через функцию какую-то по имени останавливать. Но это мне так кажется. Возможно, можно как-то нормально контролировать ее?
А ВОТ ТЕПЕРЬ ПАБЛИК
передай через канал стоп
dev_sheep
Но получается на каждую горутину должен быть канал? И где-то он должен быть открыт. А все запускается из одного места (case)
Dmitry
а какая у ГО аналогия есть pm2?
Смотрел когда-то на pm2 в ноде, лично мне кажется что он совершенно не нужен(потому что пытается покрыть слижком много задач). Если надо демонизировать процесс то в большинстве линуксов сейчас есть прекраснейшая и очень доступная всем вещь - systemd
dev_sheep
О, зацените какая штука прикольная: https://goreportcard.com/
Kirill
О, зацените какая штука прикольная: https://goreportcard.com/
уже больше года гоняем в качестве требования в awesome-go
А ВОТ ТЕПЕРЬ ПАБЛИК
Почему не ругается, один пакет же
А ВОТ ТЕПЕРЬ ПАБЛИК
А ВОТ ТЕПЕРЬ ПАБЛИК
А ВОТ ТЕПЕРЬ ПАБЛИК
пакет main
А ВОТ ТЕПЕРЬ ПАБЛИК
везде
分解物質
ты не понимаешь значение слова undefined?
А ВОТ ТЕПЕРЬ ПАБЛИК
ты не понимаешь значение слова undefined?
Я не понимаю почему он не видит
分解物質
может newRoom в другом подпакете определён?
分解物質
может у тебя в newRoom киррилическая 'o' ?
А ВОТ ТЕПЕРЬ ПАБЛИК
Я ща заметил что у меня какой то неверный gopath глобальный и я пока не понял где он прописан. в bash_profile его нет
dev_sheep
Ребята, насколько безопасна эта штука? runtime.Goexit()
Anonymous
Ребята, насколько безопасна эта штука? runtime.Goexit()
Попробовал (перед запуском зажмурившись), вроде пальцы не оторвало. Позвонил брату - он жив. Мой вердикт - безопасно.
dev_sheep
😂
Andrey
Всех с праздником ребят!) Причастных и не причастных 😊
dev_sheep
можно порадоваться за нашего красавчика ❤️
dev_sheep
dev_sheep
свеженький рейтинг
Oleg
TIOBE :)
Aleksandr
Всем привет
Aleksandr
Какой best way для restapi & frontend? Сделать как один сервис? Или как два различных?
aadz
REST изначально означает независимую распределенную обработку запросов. Отдельно, конечно.
Aleksandr
И я думаю, что это две различных оси для изменений, и собирать заново rest service из-за фронта глупо
ainu
https://tproger.ru/news/tiobe-may-2017/
ainu
Но продолжает набирать популярность
ainu
Опечатка. ,*Го
dev_sheep
+
dev_sheep
го топ :3
А ВОТ ТЕПЕРЬ ПАБЛИК
Да что не так с этими пакетами
А ВОТ ТЕПЕРЬ ПАБЛИК
А ВОТ ТЕПЕРЬ ПАБЛИК
А ВОТ ТЕПЕРЬ ПАБЛИК
./main.go:43: undefined: Player
Stanislav
ну, во-первых что такое println()? :) А во вторых настало время читать про разбитие гошных приложух на пакеты, видимо :) Например в main вообще не рекомендовал бы делать любые структуры, для этого есть пакеты.
А ВОТ ТЕПЕРЬ ПАБЛИК
Gogland запустил через Package все заработало)) Я проверил в консоли и все собралось, тогда я понял что дело не в го
А ВОТ ТЕПЕРЬ ПАБЛИК
А ВОТ ТЕПЕРЬ ПАБЛИК
Вот выдает
Stanislav
я не знаю, что это за херня, и никому знать не советую. Если хочешь НАУЧИТЬСЯ писать на каком-либо языке - выкидывай нафиг все эти IDE и пиши в Notepad++/Sublime Text/etc. А потом, когда уже сможешь с закрытыми глазами написать логгер, таскраннер или прочее подобное - уже думать об удобстве. Иначе ничему не научишься. А gogland врет. Нету такой функции в Go.
Oleg
println - встроенная (built-in) функция вывода в stderr
Oleg
В го она есть
Oleg
Не надо нагонять на IDE, каждый пишет, в чем удобно
Stanislav
ну давайте почитаем https://golang.org/ref/spec#Bootstrapping: > Current implementations provide several built-in functions useful during bootstrapping. These functions are documented for completeness but are not guaranteed to stay in the language.
Stanislav
взбредет Робу убрать println() и софт поломается. Из-за этого рекомендуется (крайне) использовать пакет fmt
Oleg
Нужно использовать или нет - это другой вопрос
Oleg
Сейчас она есть
Stanislav
хорошо, сейчас она есть, но лучше считать, что ее нет