Maks
папки с точки начинаются
Maks
у мне мейк нужен в павершеле
Рик
MinGw?
Maks
я через choco поставил
Maks
теперь всё ок
Рик
Ну или через чоко
Игроман
у мне мейк нужен в павершеле
Извини за китайский вопрос: Нахуа мейк в повершеле?
Maks
Что бы там дефолтные билды аппликейшина держать
Maks
и не писать билд ручками
Игроман
Тогда используй cmake--он сам будет генерить makefile
Игроман
Так ему же не генерить надо)
Cmake сам настроит make
DI
main = тоже горутина, если она не ждет остальные горутины, то они заканчиваются с ее завершением. В принципе функция может отработать, а горутина которую она вызвала - продолжить работу
Тогда еще один вопрос на счет них. Когда уничтожаются объекты, внутри которых создаются эти гороутины, гороутины продолжат выполнение? Конфигурация ПО зависит от файла, поэтому необходимо переконфигурировать все структуры в случае изменения файла. А там гороутины внутри которых бесконечные циклы
Michael
Структура это тип, она сама по себе ничего не запускает
Michael
В смысле метод в котором ссылка на структуру?
Michael
type name struct { A int B string } func (n *name) String() string { return n.B }
DI
А как ты собираешься уничтожать "объекты"?
Сборщик мусора за это отвечает, если книга корректна
🔥
Сборщик мусора за это отвечает, если книга корректна
Ну так значит этот "объект" должен перестать использоваться в памяти, а как он перестанет если он используется в функции.
🔥
Может не много не правильно выразился, но суть думаю донес
DI
Ну так значит этот "объект" должен перестать использоваться в памяти, а как он перестанет если он используется в функции.
Я понял, что ты имеешь ввиду. Циклы внутри методов экземпляров, а ссылки на экземпляры перетираются другими экземплярами
DI
Я понял, что ты имеешь ввиду. Циклы внутри методов экземпляров, а ссылки на экземпляры перетираются другими экземплярами
package main import ( "fmt" "time" ) type Example struct {} func (exm *Example) printer() { for i:=0; ; i++{ fmt.Println(i) } } func (exm *Example) start_printer(){ go exm.printer() } func start_printer(){ exm:=Example{} exm.start_printer() select{ case <-time.After(3*time.Second): return } } func main(){ start_printer() var str string fmt.Scanln(&str) }
DI
Они не уничтожаются, в общем, или сборщик мусора работает больше 95 секунд
DI
Не очень тебя понимаю Что должно уничтожиться?)
exm:=Example{} После выхода из функции
🔥
Если я ничего не забыл)
DI
Нет не уничтожиться
Из за гороутины?
🔥
Из за гороутины?
Вообще GC в го очень кастомизируемый. Вот подробнее https://pkg.go.dev/runtime
🔥
И мне кажется легче понять как что то работает заглянув "под капот" Когда начинал изучать го часто смотрел сюда https://github.com/golang/go/blob/master/src/runtime/mgc.go
Sardor
Доброго вечера! Посоветуйте, пожалуйста, книгу по Го. Имею несколько лет опыта разработки, поэтому Head first кажется немного скучной. В нескольких местах советовали Go in action, но она, похоже, рассчитана на людей не просто имеющих опыт в разработке, а уже знающих Го Было бы круто найти книгу, в которой го изучается с нуля, но без объяснений, что такое функция и цикл в целом
xasai.denet
Это дока
xasai.denet
+ книга "язык го для профессионалов"
Michael
+ книга "язык го для профессионалов"
А кто автор / название на англ?
xasai.denet
xasai.denet
С названием обознался
Michael
Спасибо
George
Вот эта хороша. Про специфику го, без объяснения тот что такое переменная и цикл
Sardor
ребят, вопрос по вс коду. думаю, большинство тут сталкивалось с этим установил расширение го, и теперь при сохранении файла он удаляет все, что ему не нравится, вроде неиспользуемых импортов)) это можно как-то отключить? п.с., люблю тыкать ctr+s
Anonymous
Anonymous
по книгам это
Anonymous
фреймворк fiber кажется похоже на экпресс жс
xasai.denet
Я только щас это понял, что в go нету стандартного bzero / memset. Как мы живем?
🔥
Я только щас это понял, что в go нету стандартного bzero / memset. Как мы живем?
Если тебе для слайсов то есть способ его обнулить без переалокаций
xasai.denet
Ну рассказывай чтож
🔥
Ща за комп сяду, только проснулся)
xasai.denet
мне уже конечно не горит, но в гугле я только итерированием нашел способы ...
🔥
a := []string{"a", "b", "c"} a = a[:0] Написал с телефона, но суть думаю ясна.
leejoys
ребят, вопрос по вс коду. думаю, большинство тут сталкивалось с этим установил расширение го, и теперь при сохранении файла он удаляет все, что ему не нравится, вроде неиспользуемых импортов)) это можно как-то отключить? п.с., люблю тыкать ctr+s
Оно не только удаляет неиспользуемые, но и дописывает используемые, если они не с гитхаба, а из внутренних пакетов языка. А если внешние, то можно присвоить что-то в _
leejoys
Вроде _ = pgx.Connect(...)
leejoys
Или conn:=pgx.Connect(...) _ = conn
Sardor
меня отправили в гоу тур, потом читать эффективный гоу
Я вот сейчас по геттинг стартед иду, потом хочу го тур, эффективный го и книжку продолжить)
Vitaliy
Моя первая книга по go. Пока читаю. Кернигана хорошо бы под рукой иметь, там есть базовые вещи, которые могут пригодится уже на практике.
George
Керниган по Си же? Или другая книга
Он и там и там засветился. В Го местами чувствуется влияние Си.
Martin
))))))))))))))
раритет же) через 10 лет на всех аукционах страны
Не ну это
Sardor
всем привет! Подскажите, пожалуйста, в чем логика следующего: q := []int{2, 3, 5, 7, 0, -1} fmt.Println(q) fmt.Printf("q = %v, type = %T", q, q) выводит q = [2 3 5 7 0 -1], type = []int[true false true true false true] почему в значениях в тип попадают булиновые значения? Причем они тру и у нуля. Это просто присутствие значения?
Sardor
https://pkg.go.dev/fmt
а что именно там относится к этому? не нашел:(
George
%T выводит тип. У вас значения некие выводятся
Не ну это
а что именно там относится к этому? не нашел:(
А хз, я просто погуглил "golang printf %t"))))))))