Null
Дженерики в Golang 1.18 https://www.youtube.com/watch?v=itde7ImpWCU @Golang_google
Artur
Валерій
Требуется доработка интернет-магазина с API на Golang + Laravel.
Alexander
это же вопрос вывода
Oleg
Для чего именно? Если на экран показать, то надо форматированный вывод сделать
Alexander
в смысле срезает?
Oleg
сомнительная идея, возможно тебе стоит поправить принимающую сторону, либо хранить строкой "12.100"
Oleg
скинешь документацию?
Oleg
Возможно это то, что тебе нужно https://stackoverflow.com/questions/52446730/stop-json-marshal-from-stripping-trailing-zero-from-floating-point-number Кейс интересный, не знал что платежки хавают фикс формат
Ilya
А если в строку перевести?
Иван
json number https://go.dev/play/p/U0xpcKd7RAx
🅞leksiy
Для платежной системы float сам по себе не очень, для денег лучше https://github.com/shopspring/decimal И количество замыкающих нулей float64 не хранит, потому-что 12.100 и 12.1 это одно и то же число.
Alexander
а если 12.10, 12.1000, то тоже как написал?
🅞leksiy
я бы сказал, что ничем
Только тем, что импорт может требовать не string
🅞leksiy
Я не понимаю только, как принимающая сторона может требовать N цифр после запятой в json в числе, это ж бред
Oleg
У вас явно есть понимание. Чем плох string для экспорта? (я не про хранение и обработку данных внутри).
Чисто гипотетически, если говорить глобально об абстрактной системе, вижу такой кейс. Предположим человек пишет магазин на голанг, у него там есть корзина. В корзине на 3 товара разная скидка + общая скидка на корзину (все в %). Технически на приколах дробной записи можно потерять в арифметике копейки. Fixed point числа должны бы по хорошему от этого защищать
Oleg
Но это такое, синтетический пример и надо тестить)
Oleg
Да, это дичь какая-то) Хотелось бы название платежки в студию, доку почитать
Oleg
вернее я понимаю почему такое может быть, конечно. Но почему не строка тогда 🤔🤔
🅞leksiy
А давно в c# float64?
🅞leksiy
Там double есть, но я прочитал, что в c# float64 запоминает количество нулей в конце, вот и пытаюсь понять...
Bagasl
стандартный каст типа и приведение интерфейса
Bagasl
в первом скобки вокруг int лишние
Bagasl
да
Bagasl
нет
Che
да
Нет
Che
Это работает для всего. Если делать i, ok := x.(int) то ок будет true если тип приводится
Che
int(x) работает если x типа данных который приводится к int иначе будет ошибка при билде
Bagasl
type A struct { x int y float64 } type B struct { x int y float64 } type C struct { y float64 x int } a := A{} b := B{} c := C{} ab := A(b) // ok ac := A(c) // cannot convert c (variable of type C) to A
Che
ты что-то путаешь
Не путаю, а конкретно использую, если не знаю какой тип приходит. Есть ещё такая конструкция switch val := x.(type) { case int: case float64: …. } тоже активно используется
Fedor
Ребята, привет! Мы делаем с командой приложение для приобретения NFT вскладчину Бэк будет на Go. Мы набросали архитектуру (notion + приложенный скрин) https://solar-peripheral-f65.notion.site/Architecture-Docs-7bea476999aa4f9e893a2b32a845872a Кто смог бы реализовать такой код? И сколько это по времени и по деньгам?
Иван
описание как будто для джавы какойнибудь))
Rin
Подскажите, с чем может быть связано: Слушаю стрим, при получении пакета данных отправляется запрос на сторонний сервер, при этом пинг равен 30мс, но если каждую минуту отправлять несколько похожих запросов на тот же сервер, то при получении нового пакета, время пинга сокращается до 10-15мс. Вопрос: с чем это связано и как можно уменьшить пинг, без ежеминутного запроса?
Alexander
дык кип элайв. не?
Alexander
под пингом что конкретно подразумевается?
Rin
под пингом что конкретно подразумевается?
Время от начала отправки запроса до получения ответа
Alexander
а протокол общения?
Rin
а протокол общения?
Обычный реквест на http
Alexander
ну тогда кип элайв точно
Rin
ну тогда кип элайв точно
Благодарю, чекну
🅞leksiy
Ага, а так он отключается, идет там своими делами занимается, курит, жене звонит
Alexander
но и клиент
🅞leksiy
https://ru.m.wikipedia.org/wiki/%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%BD%D0%BE%D0%B5_HTTP-%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5
🅞leksiy
TCP keepalive еще
Rin
https://ru.m.wikipedia.org/wiki/%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%BD%D0%BE%D0%B5_HTTP-%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5
Дело в том, что если на сервер отправить другой запрос, то это не помогает снизить время пинга.
Rin
https://ru.m.wikipedia.org/wiki/%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%BD%D0%BE%D0%B5_HTTP-%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5
Почитал. Максимальное время, составляет 3 минуты между прогревающими запросами, тогда пинг второго запроса короткий
Rin
Кэш?
Нет, точно не кэш и не сдн
Vinod
Any one looking for any part time opportunity in Go Lang, Please unicast
Vinod
Any one looking for any part time opportunity in Go Lang, Please unicast
Vinod
Anyone looking for part time work in Go Lang, Please unicast
Aleksey
Ну хоть не эникаст
🅞leksiy
Ну хоть не эникаст
Это типа пишите в личку
Null
7 проектов на GitHub, которые сделают вас лучшим разработчиком на Go 💥 https://uproger.com/7-proektov-na-github-kotorye-sdelayut-vas-luchshim-razrabotchikom-na-go%f0%9f%92%a5/ @Golang_google
Alexander
Надо их форкнуть и тогда всё работодатели твои?
Fedor
А для Go как лучше описание делать?)
Fedor
И то и то
🅞leksiy
И то и то
godoc читай)
Иван
а питон не скомпилированный он синтерпретированный
NN
А в питоне нет джита что ли?
Sergey
Всем привет. Ребят, подскажите, пожалуйста, зачем второй раз закрывать соединение после выполнения запроса? import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/hello") if err != nil { log.Fatal(err) } defer db.Close() var ( id int name string ) rows, err := db.Query("select id, name from users where id = ?", 1) if err != nil { log.Fatal(err) } defer rows.Close() //вот тут зачем? }
Alexander
Это не закрытие соединения, оно освобождает ресурсы, в том числе отдаёт соединение в пул соединений
Alexander
http://go-database-sql.org/overview.html - советую изучить
alex
Всем доброго дня, есть функция len, с её помощью можно посмотреть размер массива len(array) Есть двумерный массив [][]array как померить его размер? например по строке len(array[0][])
alex
))
alex
damn
alex
спасибо!
Bagasl
Не гуглят ничего некоторые и гуглить не хотят. Ютуба американского насмотрелись или крышу срывает от лени. Ты ему про документацию, он тебе про курсы. Ни о чем думать не хотят, кроме фреймворков. Пока прод по нодам не разбросает.
alex
Если по поводу моего вопроса, то обуглился уже) не нашёл нигде, хотя логически подумать - очевидно)