@gogolang

Страница 1223 из 1630
Александр
13.07.2018
16:06:21
это проще будет рефракторить

Никита
13.07.2018
16:06:23
Почнму такой способ предпочтительнее?

Александр
13.07.2018
16:06:28
IDE подствечивает

можно по use функции посмотреть все места

Google
Александр
13.07.2018
16:06:37
в отличии от параметра

Никита
13.07.2018
16:06:47
это проще будет рефракторить
В этом случае мы дублируем код три раза. Не знаю, не знаю.

Александр
13.07.2018
16:06:56
не надо дублировать ?

вы можете общий код в приватную функцию вынести

Никита
13.07.2018
16:07:18
Да, я подумал об этом сейчас

Допустим есть метод GetByToken, он вызывает приватный метод get с параметром token

Типа такого?

Александр
13.07.2018
16:10:27
в либах полно такого

повсемесно

не уверен что прямо с переменным параметром

надо смотреть что там по логике

Никита
13.07.2018
16:10:50
Ну такой подход как я описал выше сойдет?

Google
Александр
13.07.2018
16:11:43
а что у вас там? база данных?

что в общей функции

Никита
13.07.2018
16:12:57
Получается да

И вытягивает данные по колонке

Александр
13.07.2018
16:16:10
ну гоувей это будет копипаст как не странно

только совсем однотипные можно выносить отдельно

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

Никита
13.07.2018
16:23:03
Александр
13.07.2018
16:23:42
GetById(value int) GetByGroup(value string)

если к ним делать общую функцию - беда

у вас тип общего значение будет interface и type switch

Никита
13.07.2018
16:25:45
ну в БД похер что слать в принципе, она и интерефейс схавает, если мы получаем данные

Александр
13.07.2018
16:25:58
ну такое

вместо такого: func GetById(value int) *Result { Get("id", value) } func GetByGroup(value string) *Result { Get("group", value) } func Get(field string, value interface{}) *Result { return Select().Where(field, value) } лучше сделать так: func GetById(value int) *Result { return Select().Where(field, value) } func GetByGroup(value string) *Result { return Select().Where(field, value) }

если колбаса с select слишком большая, то выносим

func GetById(value int) *Result { return prepare().Where(field, value) } func GetByGroup(value string) *Result { return prepare().Where(field, value) } func prepare() *Query { return Select().Any().AnyFunc() }

но никак не "переменные" в обертку

Никита
13.07.2018
16:31:11
Понял, спасибо

Какой правильный способ обрезать строку?

Слайс не катит

Google
Александр
13.07.2018
17:37:51
Никита
13.07.2018
17:38:15
Вылетает паника если верхний предел больше длины строки

Александр
13.07.2018
17:38:33
а вы проверьте...

Nazary
13.07.2018
17:38:56
math.Min не катит?

Александр
13.07.2018
17:39:11
Никита
13.07.2018
17:39:43
а вы проверьте...
кажется каким то костылем

https://play.golang.org/p/A732dMq-5O
пробовал делать через руны, но что то пошло не так

Александр
13.07.2018
17:40:43
один не одобрил ага ?

пример можно

Никита
13.07.2018
17:40:56
Вроде строку режет ок

И сама строка нормальная на выходе

но БД жалуется pq: invalid byte sequence for encoding "UTF8": 0x00

Никита
13.07.2018
17:41:13
Сейчас покажу

string([]rune(NewsTitle)[0:25])

Александр
13.07.2018
17:41:26
пример на play

нене

код в канал не канает ?

Никита
13.07.2018
17:42:04
Пример не могу показать

БД жалуется же

Как мне это на Плей показать

Google
Никита
13.07.2018
17:42:24
Саму строку оно нормально режет

но БД жалуется pq: invalid byte sequence for encoding "UTF8": 0x00
Но драйвер БД ее не принимает

Александр
13.07.2018
17:44:17
Postgesql does not supports zero in characters (unlike Oracle). You have to replace such chars with something other (like space). Here is a similar post to this problem: http://stackoverflow.com/questions/1347 … g-utf8-0x0 You could implement in a tMap an "cleaning" step: Use this expression: row1.my_string.replace("\\x00", " ")

Aleksandr
13.07.2018
17:44:25
пробовал делать через руны, но что то пошло не так
func substring(s string, offset int64, length int64) string { end := offset + length var start int64 var i int64 for range s { if i == offset { start = i } if i == end { return s[start:i] } i++ } return s[start:] } буквально вчера делал

Александр
13.07.2018
17:44:28
я вангую это ваше

Никита
13.07.2018
17:44:53
Интересно, откуда эти нулевые байты появились?

Admin
ERROR: S client not available

Александр
13.07.2018
17:45:06
а вы распечатайте строку то

Никита
13.07.2018
17:45:10
Я вывел ее

Александр
13.07.2018
17:45:24
в []byte("строка")

сразу увидите что там в байтах

Никита
13.07.2018
17:47:14
Сложно понять что там в байтах

Точнее, как понять есть ли там нулевой байт

208 161 208 186 208 190 209 128 208 190 32 209 131 209 135 208 181 208 177 208 176 33 0 0 0 0 0 0 0 0 0 0 0 0 0

Вся строка

А стоп

Нули в конце, оно?

Google
Александр
13.07.2018
17:47:55
оно

вы строку можете текстом дать?

Никита
13.07.2018
17:48:05
Скоро учеба!

Вот

Александр
13.07.2018
17:48:12
что там за секрет полишинеля ?

Никита
13.07.2018
17:48:22
Не понимаю откуда оно взялось

Видимо понял

Александр
13.07.2018
17:48:56
Скоро учеба! - [208 161 208 186 208 190 209 128 208 190 32 209 131 209 135 208 181 208 177 208 176 33]

Никита
13.07.2018
17:49:01
До обрезки все ок

После обрезки появились эти байты

Александр
13.07.2018
17:49:08
давайте функцию обрезки суда

Никита
13.07.2018
17:49:10
Видимо оно заполнило

Александр
13.07.2018
17:49:14
что-то вы там накосячили

Никита
13.07.2018
17:49:20
Aleksandr
13.07.2018
17:49:38
это херня а не функция) юзай мою

Александр
13.07.2018
17:52:54
тут еще одно

в фразе "Скоро учеба!" нет 25 символов ?

по хорошему должны были получить slice bounds out of range

Никита
13.07.2018
17:54:19
по хорошему должны были получить slice bounds out of range
Если бы брал слайс от байт, то выдавало бы

А тут слайс от рун и пашет

Александр
13.07.2018
17:54:33
не важно какой слайс

оно всегда же выдаст

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