Alexander
-G это понять и простить?
ну а как ты думал? откуда это вообще взял человек с ответом? он писал компилятор и знает про странную фичу?
Alexander
Я написал выше. Декларативный код и точнее известный тип.
ну в смысле? если я не параметризую методы структуры отдельно, то у меня все известно итак
Null
ну в смысле? если я не параметризую методы структуры отдельно, то у меня все известно итак
Вам надо подольше пожить с женериками или пописать на хаскеле немного;)
Alexander
человек с ответом открыл хелп
я хз: go help build - нет такого флага
Alexander
1.18.4
Igor
go build -gcflags -help
Dilame
У процессора на сервере Ubuntu архитектура x86_64 С какими опциями запустить команду go build для него?
Юра (Юрий Александрович)
У процессора на сервере Ubuntu архитектура x86_64 С какими опциями запустить команду go build для него?
go buld компилирует по умолчанию под текущую архитектуру. Т.е. если вы на сервере запустите go build - то автоматически получите совместимый бинарник.
Не ну это
Я знаю, но хотелось бы скомпилировать на локальной машине
мб эта статейка поможет https://habr.com/ru/post/249449/
mrbuster9
Доброго времени суток! Подскажите плиз как решить проблемку. Разбираю JSON в структуру, одно поле в JSON имеет явный цифровой тип длиной 10 байт, соответственно если использовать float64 число не влезает в поле структуры и часть отрезается. Пробовал использовать тип big.Float получаю ошибку. Посоветуйте как решить.
Akhmed
Мужики, здарова. Слушайте, вопрос. Как можно получить параметры запроса в классе *http.Request ?
Akhmed
что ты подразумеваешь под "параметрами запроса?"
Post запрос, его тело, параметры, хз как, ещё назвать
Akhmed
Аля page=1&search=abc и т.д
Andrey
вот ты вроде пишешь про тело,а потом пишешь про query)
Akhmed
На стаковере читал, что ParseForm(), но у меня пропадают параметры вообще, а читая офф доку по http, глаза расходятся и найти ничего нормально не могу с поиском
Akhmed
вот ты вроде пишешь про тело,а потом пишешь про query)
Ну параметры пост запроса обычно в теле хранятся, а в гет запросе в урле
Andrey
и все же, что ты хочешь, получить тело запроса, или квери?
Akhmed
Тело
Andrey
ну тогда оно находится в http.Request.Body
Andrey
но его надо анмаршалить, если так json
Andrey
Тело
можешь тут почитать https://dev.to/billylkc/parse-json-api-response-in-go-10ng
Akhmed
но его надо анмаршалить, если так json
А я правильно понимаю, что http.response.body, что http.request.body имеют одну структуру ?
Dilame
вот ты вроде пишешь про тело,а потом пишешь про query)
Насколько мне известно, тело имеет такую же структуру, как query:)
Andrey
Насколько мне известно, тело имеет такую же структуру, как query:)
если я не ошибаюсь, их надо только немного по другому доставать. вот я и уточнял
Nikita
Ребят, всем привет! Не могу додуматься до решения. Есть слайс с функциями (funcs), пытаюсь его обработать эти функции, итерируясь по нему и запуская каждую функцию, затем записываю результат функции в канал. results := make(chan interface{}, len(funcs)) srez := []interface{}{} go func() { for _, await_func := range funcs { results <- await_func() } close(results) }() for x := range results { srez = append(srez, x) } return srez Прикол в том, что с таким решеним у меня получается ожидание того, пока отработают все горутины и запишут результаты в канал. Как мне это сделать в стиле async/await? Чтобы не ждать пока все отработают? Есть идея запускать каждую функцию из слайса в горутине, по не понятно, как записывать каждую в канал.
Nikita
Правильно ли я понял, что ты хочешь это запустить каждую функцию в своей горутине?
да, верно. Вот тут ``` go func() { for _, await_func := range funcs { results <- await_func() } ``` Но не понимаю, как это сделать.
Andrey
Сейчас
Nikita
Если я буду делать так ``` go func() { for _, await_func := range funcs { results <- go await_func() } ``` то не получиться.
Akhmed
ну тогда оно находится в http.Request.Body
Спасибо, все заработало
Nikita
пробуй https://goplay.space/#fyYujMlSqpu
Это понятно как делать с wg, я пытаюсь это сделать через буф.канал))
Юра (Юрий Александрович)
results := make(chan interface{}, len(funcs)) srez:=srez := []interface{}{} wg:=sync.WaitGroup{} for f:=range funcs { wg.Add(1) go func() { results<-f() wg.Done() } } wg.Wait() close(results) //и дальше читаешь из канала }
Юра (Юрий Александрович)
Или нужно без wg?
Andrey
твой пример не эффективный)
Юра (Юрий Александрович)
(извините, писал в блокноте без IDE :( ) А функции надо, чтоб пареллельно выполнялись, или нет?
Nikita
(извините, писал в блокноте без IDE :( ) А функции надо, чтоб пареллельно выполнялись, или нет?
ага, параллелньно. Как раз в этом и прикол. Мое решение работает последовательно как раз
Nikita
Есть вот такая подсказка.
Юра (Юрий Александрович)
Тогда вот тот вариант, что я написал: функции будут выполняться параллельно (и в каком порядке в канал запишутся результаты их работы наперед неизвестно).
Andrey
Есть вот такая подсказка.
мне кажется тебя немного плющит)
Юра (Юрий Александрович)
Тут надо применять телепатию (или хотя бы психоанализ), и пытаться догадаться, что имел в виду автор задачи (или курса).
Alexander
но его надо анмаршалить, если так json
неа. стандартная форма отправляется навроде той же строки что и квери
Alexander
это уже апишно/клиентские заморочки могут быть в виде отправки джейсона
Andrey
неа. стандартная форма отправляется навроде той же строки что и квери
это немного глупо делать пост запрос с квери, хотя какие я только извращения только не видел
Alexander
бляаа
Alexander
сделай обычную хтмл формочку методом пост, отправь и посмотри что браузер отправит
Andrey
я вроде спросил у чела как он, он сказал, и у него заработало. или без духоты никак?
Alexander
а ты всегда вырываешь контекст только?
там же был абстрактный пост запрос
Alexander
пошел немного rfc почитать по хттп, на забавную вещь наткнулся: 4.4 Message Length 1. ... 2. ... 3. ... 4. ... 5.By the server closing the connection. (Closing the connection cannot be used to indicate the end of a request body, since that would leave no possibility for the server to send back a response.)
Evgeny
а может кто-нибудь со мной поговорить про service meshes и их терминологию? вот я знаю, что есть east-west трафик - это фактически горизонтальный трафик между различными приложениями в моих разных кластерах. но вот например Linkerd предлагает мне обозначить два кластера как east и west, и я не понимаю - они равноправные, или у них разные фунции? гейтвей-то для вертикального трафика у меня только в одном из них. а если кластера три будет, третий - он east или west?
Aziz
Привет всем Подскажите пожалуйста что такое base в функции strconv.ParseInt (второй аргумент) ?
Юра (Юрий Александрович)
Привет всем Подскажите пожалуйста что такое base в функции strconv.ParseInt (второй аргумент) ?
Это флаг для разбора чисел в двоичной, восьмеричной, шестнадцатеричной форме Чуть подробнее на английском тут: https://pkg.go.dev/strconv#ParseInt
Юра (Юрий Александрович)
(т.е. этот флаг позволяет парсить в число всякие 0xFF и 0b11001100)
Aziz
Хорошо, может быть я не понимаю
Aziz
numStr := "10" numInt64, _ := strconv.ParseInt(numStr, 2, 64) fmt.Println(numInt64)
Aziz
вот так делаю, хочу получать 1010
Aziz
но он мне выводит 2
Aziz
10 в двоичном виде же 1010
Юра (Юрий Александрович)
numStr := "10" numInt64, _ := strconv.ParseInt(numStr, 2, 64) fmt.Println(numInt64)
указав 2, вы указываете, что ваша строка "10" - это запись числа в двоичной форме. Параметр base указывает не в какой системе число получить, а в какой системе оно в строке записано и в функцию передается.
Aziz
аааа, понял, спасибо
MRpl
Может, кто-то знает? var db // ЧТО СЮДА ПИСАТЬ, ЧТОБЫ ИСПОЛЬЗОВАТЬ ПОТОМ ЭТО ВНЕ ЦИКЛА? for { fmt.Println("Waiting for database...") conn, _ := sql.Open("mysql", "root:root@tcp(localhost:3306)/testdb") if conn.Ping() == nil { fmt.Println("Database connected seccessfully") break } —--> db := conn time.Sleep(5 * time.Second) }
MRpl
Просто в дальнейшем на кубах хочу запускать это и нужно, чтобы контейнер жил, пока база запускается
MRpl
Как лучше поступить?
Anonymous
Илья
Как лучше поступить?
sql.Open можно вынести из цикла, а внутри делать conn.Ping()
Vladimir
Господа и, надеюсь, Дамы, Может кому здесь известны какие-то хорошие онлайн курсы по Go? Кто то может слышал какие то отзывы хвалебные о разных geekbrains'ах и яндекс.практикумах... Есть желание пройти, авось как то дополнятся и структурируются знания. А то очень хочется перепрофилироваться и писать бэк на Го.
Bogdan
Теория + практика
Bogdan
Шикарный курс