@gogolang

Страница 539 из 1630
Kirill
28.09.2017
13:47:50
который на codecov ведет?
Иногда на codecov, да

в который?
Который sponsored by

Daniel
28.09.2017
13:48:09
done

Google
anton
28.09.2017
13:48:10
Kirill
28.09.2017
13:48:29
Спасибо :3

anton
28.09.2017
13:48:31
потом, когда озолотишься и решишь сделать греймворк платным - вспомни кто тебе помог...

Илья
28.09.2017
13:49:56
Не, грэйм строго бесплатный)
Using dynamic handlers, part 4 - в примере ctx *fasthttp.RequestCtx

и описание не соответствует примеру

помоему :)

Kirill
28.09.2017
13:51:09
Using dynamic handlers, part 4 - в примере ctx *fasthttp.RequestCtx
А как посоветовал бы назвать?

Илья
28.09.2017
13:51:36
А как посоветовал бы назвать?
ну, у тебя же там свой контекст gramework.Context

Kirill
28.09.2017
13:51:51
Коллеги, кто хочет поддержать грэймворк? Тыкните в баннер в ридми github.com/gramework/gramework )
Алсо, если тыкнуть в репе https://github.com/kirillDanshin/halogenium, то деньги тоже капнут мне, и это поможет)

ну, у тебя же там свой контекст gramework.Context
Да, но есть и поддержка fasthttp.RequestCtx

Илья
28.09.2017
13:52:32
Да, но есть и поддержка fasthttp.RequestCtx
оу, тогда в import тоже добавить надо :)

Kirill
28.09.2017
13:53:17
Oops

Google
Kirill
28.09.2017
13:53:23
Спасибо

Илья
28.09.2017
13:53:30
и описание там "The example below will serve a string and register flag "bind", that allows you to choose another ip/port that gramework should listen", а в примере использование fasthttp RequestCtx :)

Kirill
28.09.2017
13:54:54
Да, просто часть с serve a string сделана через fasthttp.RequestCtx для понимания, что есть совместимость хендлеров

Спасибо)

Илья
28.09.2017
14:03:06
Илья
28.09.2017
14:05:34
Это в самом грэйме)
а в примере? :)

Kirill
28.09.2017
14:06:20
а в примере? :)
При запуске проги можно сделать ./appName -bind :8080

Alexander
28.09.2017
16:22:27
а кто как пишет обход NULLов из базы данных? 1. field1 NOT NULL DEFAULT ""; 2. IFNULL(field1, "") 3. struct {field1 sql.NullString} 4. Что там еще можно выдумать?

Vasily Romanov
28.09.2017
16:34:40
sql.NullString и комапании

или указатели

Nick
28.09.2017
16:35:58
Дык он наоборот от нула избавляется

Yegor
28.09.2017
16:39:02
Alexander
28.09.2017
16:43:11
string([]byte("")) string([]byte(nil)) Не? Идея в том, что такой кастинг возвращает пустую строку

или что значит обход NULLов из базы данных?

https://play.golang.org/p/nivY1yBK3x

https://github.com/guregu/null/blob/master/string.go

Alexander
28.09.2017
16:46:22
ну я пишу структуру со строгой типизацией данных. В неё загоняются значения из базы данных, где поле наловое. В какой то момент попадается NULL, и всё рушится.

Alexander
28.09.2017
16:47:21
а в структуре присутствет тип []byte?

Alexander
28.09.2017
16:47:46
ну я могу сделать, если это выход

Google
Alexander
28.09.2017
16:48:09
вместо string написать []byte?

и там окажется nil, если в базе null, да?

Alexander
28.09.2017
16:50:10
Ну, из базы-то строковые типы, вроде как []byte и приходят. Просто при получении их надо сразу обрабатывать в виде string(), чтобы получать пустую строку при значении nil

Alexander
28.09.2017
16:51:22
спасибо, попробую

Alexander
28.09.2017
16:52:50
В общем, мы получаем одно и то же в итоге из fmt.Println(string([]byte(""))) fmt.Println(string([]byte(nil))) это будет пустая строка

Alexander
28.09.2017
16:54:27
а с интами как?

Alexander
28.09.2017
16:57:09
https://marcesher.com/2014/10/13/go-working-effectively-with-database-nulls/

sql.NullInt64, или руками проверять на nil :(

Но sql.NullInt64 не так эффективно по памяти и по работе с ним в дальнейшем. Это структура: type NullInt64 struct { Int64 int64 Valid bool // Valid is true if Int64 is not NULL } так что может иметь смысл сразу при получении int проверять, что там, и решать что хранить в итоге самому.

И, конечно, надо отрывать руки тем, кто делает базы и приложения так, что потом приходится страдать. не понимая того, то NULL в SQL - это не только отсутствие данных, но еще и отсутствие типа данных :(

Alexander
28.09.2017
17:04:55
https://marcesher.com/2014/10/13/go-working-effectively-with-database-nulls/
ну вот я так и написал, но мне показалось, что это "немножно через жопу"

и не знаю, как это скажется на производительности

Mush
28.09.2017
17:06:57
почему опять таки не указатель?

указатель может быть nil

Alexander
28.09.2017
17:07:43
Alexander
28.09.2017
17:08:05
почему опять таки не указатель?
практичней сразу при получении из базы данных проверять на nil., чем потом во всех местах с этими данными париться

Mush
28.09.2017
17:10:11
можно пример?
type Hz struct { NullableIntField *int NullableInt64Field *int64 NullableStringField *string // any type pointer field } v := Hz{} if v.NullableIntField == nil { // Это null } else { // Это  int }

Alexander
28.09.2017
17:11:44
т.е. прежде чем воспользоваться полем, мне надо будет во всех местах писать if v.NullableIntField == nil { // Это null } else { // Это int } ?

Alexander
28.09.2017
17:12:09
да

Alexander
28.09.2017
17:12:26
помему тоже не красиво )

Google
Constantine
28.09.2017
17:12:32


ivan
28.09.2017
17:12:58
в телеге есть паблики для обсуждения алгоритмов ?

Mush
28.09.2017
17:13:04
Alexander
28.09.2017
17:15:26
да, но сраавнивать не всегда надо. Иногда бывает надо просто передать куда-то значение определенного типа, а вот nil в функцию, которая ожидает int, не передашь

Alexander
28.09.2017
17:17:04
почему гоша не придумал тернарный оператор...

Kirill
28.09.2017
17:18:02
Alexander
28.09.2017
17:22:34
а интересно, держать в базе пустую строку на много тяжелее. чем null ?

Alexander
28.09.2017
17:23:42
не на много

Constantine
28.09.2017
17:35:33
https://vk.com/golang?z=video-27669892_456239059

Alexander
28.09.2017
17:42:10
vim, жостко. Столько раз пробовал начать

Zloy Dobriy
28.09.2017
17:42:38
Жоско vi

На третий день научишся выходить из него

BlastPy
28.09.2017
17:47:24
:q сложно наверно = )

Alexander
28.09.2017
17:48:16
на третий день научишься выходить по :q! :)

Irek
28.09.2017
17:49:30
А первые дня два по кнопке ребута будешь выходить:)

Alexander
28.09.2017
17:50:18
Зачем? Ctrl-Z прекрасно работает, выходишь в шелл и killall vim :)

BlastPy
28.09.2017
17:51:03
вам смешно а як когда начал знакомство с линунс сделал rm rf / забьів указать ~

Irek
28.09.2017
17:51:34
Ага, объясни это человеку который поломал систему, и у него нет Гуя и находится он в init 1-3)

Google
BlastPy
28.09.2017
17:52:06
ну 4 года прошло так то

когда я так сделал

ище elementary os luna в бете бьіла

маленький вопрос а что за тип []byte в go слайс байтов ? увидел в коде для откр файла

Slava
28.09.2017
17:56:47
а в чём вопрос то?

ты же сам в вопросе и ответ пишешь

BlastPy
28.09.2017
17:57:15
вопрос в том как его дальше можно использовать

BlastPy
28.09.2017
18:00:56
А что нужно?
я в общем понятии его можно преобразовать в стринг и т.д ?

AxiS
28.09.2017
18:01:00
вопрос в том как его дальше можно использовать
если текстовые данные можно в стринг перегнать

Мерлин
28.09.2017
18:01:20
я в общем понятии его можно преобразовать в стринг и т.д ?
Можно в строку, можно так работать Можно записать куда-то

Andrew
28.09.2017
18:03:42
BlastPy
28.09.2017
18:03:58
так далее

Andrew
28.09.2017
18:06:02
У []byte нету метода "так далее".

Но ты можешь написать сам: type mySlice []byte func (b *mySlice) Etc() {} и сделать всё, что хочешь ))

Alexander
28.09.2017
18:08:03
у типов вобще нет методов в Go :)

Andrew
28.09.2017
18:09:13
у типов вобще нет методов в Go :)
А выше я пример привёл - это не метод?

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