@proGO

Страница 1361 из 1674
Sergey
11.04.2018
12:50:44
у вас в приложении value чем может быть?

тут вы его массивом строк объявляете

и для корректной отработки, его нужно поэлементно конвертировать в массив интерфейсов. )

Aleksey
11.04.2018
12:52:33
Скорее всего дальше строки, числа, массива строк и массива чисел не зайдет, но хочется идеальный код, который работает с любыми типами. А вот относительно поэлементой конвертации, сначала нужно узнать, что передо мной массив, чтобы каждый элемент конвертировать.

Google
Sergey
11.04.2018
12:52:44
value = []string{"1", "2", "3"} вот так не работает конвертирование типов

Aleksey
11.04.2018
12:53:27
Ладно, спасибо за идеи, задача далеко не самая важная, просто хотелось поглубже углубится в систему типов. Скорее всего прикручу reflection

Это не конвертация, а способ описать задачу.

Sergey
11.04.2018
12:57:18
https://play.golang.org/p/tMgXavupvJo

Александр
11.04.2018
13:01:00
Ладно, спасибо за идеи, задача далеко не самая важная, просто хотелось поглубже углубится в систему типов. Скорее всего прикручу reflection
v := reflect.ValueOf(x) switch v.Kind() { case reflect.Bool: fmt.Printf("bool: %v\n", v.Bool()) case reflect.Int, reflect.Int8, reflect.Int32, reflect.Int64: fmt.Printf("int: %v\n", v.Int()) case reflect.Uint, reflect.Uint8, reflect.Uint32, reflect.Uint64: fmt.Printf("int: %v\n", v.Uint()) case reflect.Float32, reflect.Float64: fmt.Printf("float: %v\n", v.Float()) case reflect.String: fmt.Printf("string: %v\n", v.String()) case reflect.Slice: fmt.Printf("slice: len=%d, %v\n", v.Len(), v.Interface()) case reflect.Map: fmt.Printf("map: %v\n", v.Interface()) case reflect.Chan: fmt.Printf("chan %v\n", v.Interface()) default: fmt.Println(x) }

определить слайс или не слайс только так

через рефлект

Aleksey
11.04.2018
13:01:43
Спасибо, попробую

У меня еще такой вопрос, как в го принято опциональные аргументы использовать? Как я понял, самый правильный способ, это через фабрики функций типа: executeTemplate(“this is my array - {{array}}”, WithVar(“array”, []string{“1”, “2”, “3”}))

Sergey
11.04.2018
13:10:52
Это что-ли? func t(s string, args ...interface{}) { fmt.Println("Строка: ", s) if len(args) > 0 { fmt.Println("Аргументы: ", args) } }

Daniel
11.04.2018
13:12:43
на самом деле - вариантов два

Google
Kirill
11.04.2018
13:13:30
если принимать ссылки на тип, то их можно передать как нил

Daniel
11.04.2018
13:13:33
1. передавать .... годится для однотипных. 2. принимать на вход структуру, инициализировать только нужное

но на перваый взгляд опциональные аргументы это проблемы в дизайне

Александр
11.04.2018
13:19:29
если там скажем штук 20 элементов

Daniel
11.04.2018
13:19:49
нинасколько

это синтаксический сахар вокруг передачи массива

Marlik
11.04.2018
13:21:10
если там скажем штук 20 элементов
Чот многовато для функи одной, может на мелкие разбить?

Айбелив
11.04.2018
13:21:16
кстати насколько тормозная операция MyFunc(params...)?
использование вариадиков — это норма

Marlik
11.04.2018
13:59:28
я для примера
Ты вроде писал как-то что пихал ресурсы в бинарник, как?

Daniel
11.04.2018
14:00:16
https://github.com/jteeuwen/go-bindata

Marlik
11.04.2018
14:00:58
Daniel
11.04.2018
14:00:59
https://github.com/gobuffalo/packr

https://github.com/siongui/goef

тысячи их

Александр
11.04.2018
14:01:31
я юзал - github.com/gobuffalo/packr

Marlik
11.04.2018
14:02:51
Спасибо, почитаю.

тысячи их
А базу sqlite мона пихнуть, небольшую?

Google
Marlik
11.04.2018
14:05:13
Прост пока не в курсах, как там и что...

Александр
11.04.2018
14:07:13
а кто работал с opentracing-go

я упарился уже с ним O_o

нужно метрики подрубить, которые потом будут выгружены в прометеус (через jaeger)

сделал: metricsFactory := prometheus.New() // Initialize tracer with a logger and a metrics factory _, err = jcfg.InitGlobalTracer( appConfig.Tracing.ServiceName, jaconfig.Logger(jaeger.StdLogger), jaconfig.Metrics(metricsFactory), )

вроде больше ничего и не надо O_o

далее спавны идут уже

но что-то я не вижу моего приложения в выгрузках из джаггер

документации 0 как всегда

Daniel
11.04.2018
14:10:20
А базу sqlite мона пихнуть, небольшую?
нет, конечно. это не эмулятор файлововой системы, это просто способ всосать в бинарник последовательность байт

Александр
11.04.2018
14:10:53
А базу sqlite мона пихнуть, небольшую?
нужен серилизатор, либо json либо gob

если вы хотите условно базу в базу O_o

Daniel
11.04.2018
14:11:21
ма-ма

Александр
11.04.2018
14:11:52
ма-ма
ну не знаю, я же правильно понимаю что он базу в базу хочет? O-o

Daniel
11.04.2018
14:12:20
он хочет базу в бинарник

Александр
11.04.2018
14:12:35
ну и пусть через gob структуру бахнет :)

Daniel
11.04.2018
14:12:35
и я, теоретически, знаю, как

ну и пусть через gob структуру бахнет :)
он не хочет при этом файл создавать на диске

Александр
11.04.2018
14:13:11
ну так не обязательно

gob же не только в файл умеет

Google
Александр
11.04.2018
14:13:21
оно и по сети и просто буфер может сделать

m
11.04.2018
14:29:02
День добрый. Есть какая-то тулза, которая показывает копипасту в коде? Раньше пользовался https://github.com/kucherenko/jscpd , но хочется большего: находить куски кода, которые похожи, а не полные копии. Например, переменные просто другое название имеют или строчки местами переставлены. Т.е. такой нечёткий поиск похожего кода.

Daniel
11.04.2018
14:31:02
https://github.com/mibk/dupl

Admin
ERROR: S client not available

Marlik
11.04.2018
14:31:34
https://github.com/mibk/dupl
О нифига себе, век живи, век учись....

m
11.04.2018
14:34:22
https://github.com/mibk/dupl
Спасибо. Дофига всего нашлось...

Marlik
11.04.2018
14:35:02
А есть такое же только для текста, например кириллицы?

Daniel
11.04.2018
14:36:41
не знаю

Спасибо. Дофига всего нашлось...
вообще - пора тебе gometalinter освоить :)

m
11.04.2018
14:37:59
А я его использую. Но его нет смысла запускать постоянно. Может раз в пол года.

точнее, использую отдельные тулзы из его набора.

Daniel
11.04.2018
14:39:10
его имеет смысл гонять перед сборкой очередной версии на деплой

m
11.04.2018
14:51:17
Надо признать, что ценность найденного там так себе. Но для перфекциониста самое то.

Daniel
11.04.2018
14:58:21
ну мы же и не думали, что у нас полпроекта - копипаста?...

m
11.04.2018
15:38:09
Не думали. Но предполагали.

dupl полезен тем, что находит потенциальные места для рефакторинга. Копипаста ведь разная бывает. Нашлось, например, что у двух объектов похожий метод. Но он сейчас похожий, а завтра в один из них что-то добавиться. Не городить же сейчас слияние этих объектов, а потом расцеплять их обратно.

Наткнулся тут на https://github.com/tdewolff/minify . На удивление хороший инструмент. сжимает html-страничку с вставками css, svg и js.

Позволяет не сдерживать себя в написании комментариев в том же JS-е.

Google
Marlik
12.04.2018
05:11:09
Olzhas
12.04.2018
05:17:04
вебпак на го переписать

вебпак на го переписать
хотя с плагинами проблема будет

Makkusu
12.04.2018
07:37:33
Доброе утро всем!) Кто нибудь стилизовал Excel файлы с пакетом от tealeg?

Mr
12.04.2018
09:19:53
Доброе утро всем!) Кто нибудь стилизовал Excel файлы с пакетом от tealeg?
Доброе! а в чем проблема? я пока только планировал переписать на go один древний микросервис с php, который генерит xlsx, смотрел эту либу.

Никто, кстати, не видел шаблонизаторов аля text/template для XLSX?

Phil
12.04.2018
10:08:29
Ох, xslt в 2018 году

X
12.04.2018
10:09:56
Привет. https://ru.stackoverflow.com/a/436577 - тут человек объясняет, что есть интерфейсы, я смотрю на код и у меня есть вопрос, конечно ответ наверное будет простой, но та реализация, что есть, почему нельзя просто у каждой структуры сделать методы area()?

и сможет ли кто-нибудь привести наверное более полезный пример использования интерфейсов

X
12.04.2018
10:12:22
Vladislav
12.04.2018
10:21:31
Доброго времени суток. Нужен совет/наставление. Есть шаблон html/template и есть структура которую нужно вывести в виде таблицы. Но я не понимаю как это сделать внутри отдельной функции. Подскажите, пожалуйста, что нужно написать в func indexHandler(w http.ResponseWriter, r *http.Request) {} чтобы вывести вот это (тут шаблон и сама структура - https://pastebin.com/8dR3hy46 ). Или как-то по-другому можно вносить данные в шаблон?

Aleksey
12.04.2018
11:09:32
Всем привет, есть объект и нужно создать новый с одним измененным полем, есть такая возможность? Более подробно: type Car struct { maxSpeed int color string } myCar := Car{100, “red”} anotherCar := Car{speed: 120, …myCar} // создать машину со всеми значениями myCar, но другой скоростью без перечисления всех свойств (их может быть много и поэтому не хочется перечислять)

Важна иммутабельность

Marlik
12.04.2018
11:10:33
Важна иммутабельность
А что такое иммутабельность? ))

Aleksey
12.04.2018
11:11:08
Неизменяемость, то есть myCar.speed = 120 не подойдет

Страница 1361 из 1674