@gogolang

Страница 1235 из 1630
Илья
18.07.2018
10:15:01
тогда кастомный анмаршаллер или ваш вариант

это ж лютый изврат изначально

Zhenja
18.07.2018
10:15:43
да. Но мне из вне приходит такой JSON, что поделать

Google
Oleg
18.07.2018
10:26:39
почему обычный анмаршал в map[string]interface{} уже не работает?

Илья
18.07.2018
10:27:22
работает, но производит много ненужных операций

Zhenja
18.07.2018
10:30:29
Используйте fastjson - ему не нужны никакие структуры
смотрел. Но ему же нужно прописать какое значение взять, типа data.GetInt("1", "One"), а у меня порядок не известен

Roman
18.07.2018
10:31:47
Привет всем А кто в чем конфиги хранит? Требуется сохранять определенные данные, название проекта, название папки с тестами (например), чтобы при следующем запуске программы она уже брала эти данные и выполняла некоторые действия. Думал в сторону yml, но решил на всякий случай спросить) И подскажите сразу либу, а то на awesome-go их много, по звездочкам выбирать?

скорей всего файл будет плоский по структуре и максимум содержать ключей 20-30

Zhenja
18.07.2018
10:34:31
json и либа encoding/json)

Илья
18.07.2018
10:34:31
yaml/ini/toml по желанию

Roman
18.07.2018
10:35:17
json и либа encoding/json)
фигурные скобки лишние)

Илья
18.07.2018
10:35:20
viper

ест все подряд

+ можно еще из env/флагами перекрывать значения

Roman
18.07.2018
10:37:06
viper
вот тоже на него смотрел, про томл не знал, выглядит удобно, спасибо

Google
Aliaksandr
18.07.2018
11:00:59
смотрел. Но ему же нужно прописать какое значение взять, типа data.GetInt("1", "One"), а у меня порядок не известен
делай вот так: var p fastjson.Parser v, err := p.ParseBytes(inputData) if err != nil { log.Printf("cannot parse inputData: %s", err) return } m := make(map[string]int) for _, vv := range v.GetArray() { if o := vv.GetObject(); o != nil { o.Visit(func(k, val *fastjson.Value) { m[string(k)] = val.GetInt() }) } } // теперь в m - пары (ключ, значение) для всех объектов // т.е. m["One"] вернет 1, m["Two"] = 2 и т.д.

Zhenja
18.07.2018
11:08:08
спасибо. Только у меня еще и значения разных типов) Не парьтесь, я уже сделал как сделал и оно работает. Пример работы с fastjson сохраню на будущее ?

Aliaksandr
18.07.2018
11:20:19
спасибо. Только у меня еще и значения разных типов) Не парьтесь, я уже сделал как сделал и оно работает. Пример работы с fastjson сохраню на будущее ?
сделали как-то так? var a []map[string]interface{} if err := json.Unmarshal(inputData, &a); err != nil { log.Printf("cannot parse inputData: %s", err) return } m := make(map[string]interface{}) for _, vv := range a { for k, val := range vv { m[k] = val } } // теперь m["One"] вернет 1, m["Two"] = 2 и т.д.

Zhenja
18.07.2018
11:25:47
type T struct { Zero *int One *int Two *int } arr := []T{} item := T{} json.Unmarshall(`[{"Zero":0},{"One":1},{"Two":2}]`, &arr) for _,x := range arr { if x.Zero != nil { item.Zero = x.Zero } if x.One != nil { item.One = x.One } if x.Two != nil { item.Two = x.Two } } как-то так)

Zhenja
18.07.2018
11:37:14
своё. Делал кто-то из смежного отдела

Aliaksandr
18.07.2018
11:41:26
type T struct { Zero *int One *int Two *int } arr := []T{} item := T{} json.Unmarshall(`[{"Zero":0},{"One":1},{"Two":2}]`, &arr) for _,x := range arr { if x.Zero != nil { item.Zero = x.Zero } if x.One != nil { item.One = x.One } if x.Two != nil { item.Two = x.Two } } как-то так)
так ваш код работает только для трех заранее известных полей. Вроде в условии было сказано, что полей может быть сколько угодно и они заранее не известны

Zhenja
18.07.2018
11:43:47
так ваш код работает только для трех заранее известных полей. Вроде в условии было сказано, что полей может быть сколько угодно и они заранее не известны
не. Может я как-то не так выразился, но поля известны и их типы известны. Порядок не гарантирован - может прилететь [{"Two":2},{"Zero":0},{"One":1}]

Aliaksandr
18.07.2018
11:47:00
понятно :) тогда в моих примерах кода достаточно заменить map[string]int на T и внутри вложенного цикла добавить switch по имени поля

Zhenja
18.07.2018
11:51:21
и Ваш пример не будет особо отличаться от моего решения, кроме того, что добавит еще зависимость fastjson?

Aliaksandr
18.07.2018
11:55:58
ага :) еще будет работать раз в 15 быстрее. Но если вы не парсите json сотнями мегабайт в секунду, то это не критично

Artem
18.07.2018
12:09:18
Всем привет, кто нибудь работал с hugo?

Alexey
18.07.2018
13:39:07
https://golang-moscow.timepad.ru/event/765492/

Всем привет, кто нибудь работал с hugo?
Лучше сразу задавать конкретный вопрос

Alan
18.07.2018
13:52:34
https://golang-moscow.timepad.ru/event/765492/
Зарегался, а подтверждения не прислали...

Alexey
18.07.2018
13:53:34
Я руками проверяю, что люди могут написать фамилию и имя в поля «фамилия» и «имя» соответсвенно, а так же как в паспорте (на русском языке)

(Десятки людей не могут)

Aliaksandr
18.07.2018
14:06:00
:)

Alan
18.07.2018
14:11:12
О - овтоматизация)

Google
Aleksandr
18.07.2018
14:11:59
нет, это go-way

Mike
18.07.2018
14:12:43
go away

простите

Alexey
18.07.2018
14:17:38
Если паспорт не российский, то пишите как в основном документе, удостоверяющем личность. Российский загранпаспорт на территории России таким документом не является.

Artem
18.07.2018
14:42:51
Так вот, по поводу hugo не могу понять последовательность его действий есть archetypes в корне проекта и в theme/archetypes - в теме он пуст в корне archetypes/default.md команда hugo new some.md создает страницу по архетипу который в корне - это ок но по сути в content/ создается some.md или _index.md - а вот на выходе localhost:1313 берется страница не из content а та которая лежит в теме /theme/layouts/index.html вот этого поведения я не пойму( я ожидаю что созданная страница будет приоритетней страницы theme/layout

Alexandr
18.07.2018
14:48:57
коллеги! что посоветуете для создания оконных приложений типа "редактор текста" на go ?

читаю вот это https://habr.com/post/205268/

ваши мнения?

Alexandr
18.07.2018
14:49:42
Andrei
18.07.2018
14:50:19
почему?
потому что нормальных библиотек/биндингов для gui нет и не придвидится, это не ниша го

Alexandr
18.07.2018
14:50:40
Andrei
18.07.2018
14:53:43
а это? https://github.com/golang/go/wiki/Projects#guis-and-widget-toolkits
беглый просмотр выявил максимум альфа версии у библиотек и биндинги к просроченным библиотекам на других языках

Andrei
18.07.2018
14:54:26
хотя если есть большое желание, можно и поесть кактус

Aleksandr
18.07.2018
15:02:38
https://mholt.github.io/json-to-go/
часовое обсуждение заменил одной ссылкой

Zhenja
18.07.2018
15:13:51
https://mholt.github.io/json-to-go/
так. И? Можно чуть расшифровать Ваш ответ? Про этот конвертер я знаю и он дает массив структур... Как жить с этим массивом дальше?

Nazary
18.07.2018
15:17:07
Никому не приходилось работать с хлс и ффмпегом в го?)

Google
Nazary
18.07.2018
15:18:40
Или на практике юзать те кривые биндинги с гитхаба?

Aleksandr
18.07.2018
15:19:57
Или на практике юзать те кривые биндинги с гитхаба?
можно сделать попрямее биндинги. но какие еще варианты?

Nazary
18.07.2018
15:35:43
Та как то напрягает, что в ридми ни одной ссылки и ни одного примера как юзать)

Daniel
18.07.2018
15:36:24
Код почитать?

Admin
ERROR: S client not available

Nazary
18.07.2018
15:36:49
А можно как то сплитить при чтении аутпута с exec?

Aleksandr
18.07.2018
15:36:50
Та как то напрягает, что в ридми ни одной ссылки и ни одного примера как юзать)
вот я прям щас пишу биндинги. ситуация та же - приходится си читать

stixlink
18.07.2018
15:58:10
подскажите, плиз! как лучше провернуть такое. Есть 2 слайса структур типа {Date time.Time, Value int} нужно получить один слайс типа {Date time.Time, value1 int, value2 int}, то есть объеденить два слайса в один по значению даты

переберать один слайс и искать для этой даты значение во втором, мне кажется как то затратно

Daniel
18.07.2018
16:06:05
зависит от размера слайсов

сколько там?

Aliaksandr
18.07.2018
16:09:38
используйте map[time.Time][2]int. Как-то так - https://play.golang.org/p/at6cNc21a-T

stixlink
18.07.2018
16:12:14
слайс может быть примерно 12240

в среднем

Aliaksandr
18.07.2018
16:13:56
на таких размерах мэпа будет быстрее вложенного цикла

stixlink
18.07.2018
16:17:43
@onokonem а вы что скажите?)

Daniel
18.07.2018
16:37:22
Да, на таких порядках уже надо делать map

stixlink
18.07.2018
16:58:27
спасибо!

Никита
18.07.2018
18:41:40
Как предпочтительно хранить файлы на сервере? БД с закодированными файлами в base64? Просто файлы?

Google
Данила
18.07.2018
18:49:19
Добрый вечер. Есть ли аналоги php-fpm у php (или uwsgi у python, passenger у ruby) для Go?

Slava
18.07.2018
18:50:25
в го встроенный вебсервер

Данила
18.07.2018
18:51:13
в го встроенный вебсервер
Я знаю. Но мне нужно удобно запускать/рестартить приложение.

Slava
18.07.2018
18:51:34
systemd или любой другой супервизор

Данила
18.07.2018
18:51:36
А так я могу просто запустить скомпилированный бинарник.

Eldar
18.07.2018
18:51:39
в пыхе тоже есть встроенный сервер)

Michael
18.07.2018
18:51:57
нужна кнопка - сделать хорошоу

Данила
18.07.2018
18:52:29
Slava
18.07.2018
18:52:46
ну, видимо они недостаточно хороши для продакшена

а гошный - хорош

Данила
18.07.2018
18:53:52
Я говорю про сервер приложений. Чтобы можно было сделать service {magic} restart, одной командой пересобрать приложение(и причем, с разными версиями go)

Sergey
18.07.2018
18:54:15
возможно, стоит потратить чуть больше времени на ознакомление.

чтобы удобно запускать/рестартить приложение вам уже подсказали systemd.

Данила
18.07.2018
18:55:10
Нашел - Nginx Unit

Страница 1235 из 1630