
anton
28.09.2017
13:47:37

Kirill
28.09.2017
13:47:50

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
потом, когда озолотишься и решишь сделать греймворк платным - вспомни кто тебе помог...

Kirill
28.09.2017
13:48:54

Илья
28.09.2017
13:49:56
и описание не соответствует примеру
помоему :)

Kirill
28.09.2017
13:51:09

Илья
28.09.2017
13:51:36

Kirill
28.09.2017
13:51:51

Илья
28.09.2017
13:52:32

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

Kirill
28.09.2017
14:05:21

Илья
28.09.2017
14:05:34

Kirill
28.09.2017
14:06:20

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
и не знаю, как это скажется на производительности

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

Alexander
28.09.2017
17:07:43

Alexander
28.09.2017
17:08:05

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)

BlastPy
28.09.2017
17:51:48

Google

Irek
28.09.2017
17:51:56

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
вопрос в том как его дальше можно использовать

Мерлин
28.09.2017
18:00:30

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

AxiS
28.09.2017
18:01:00

BlastPy
28.09.2017
18:01:19

Мерлин
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